Exemplo n.º 1
0
def main(gdb_stub):
    debugger = GDBDebugger(gdb_stub)
    machine = QEMU.create_from_running_vm('akshayk', 5556)
    shell = machine.get_shell()
    loader = RemoteLoader(shell, debugger,
                          LoaderOptions(),
                          DynamoRIOOptions.create_from_file('dr_options'))
    debugger.set_main_symbol_file('../debugging/linux-2.6.32/vmlinux')
    loader.load()
    machine.attach_debugger(debugger)
    for bp in ['external_error', 'os_terminate', 'panic', 'oops_begin',
               'handle_unknown_interrupt','non_maskable_interrupt',
               'null_next_tag_curiosity']:
        debugger.add_breakpoint(bp)
    debugger.resume()
    loader.init()
Exemplo n.º 2
0
    def test_exits(self):
        mock_stub = MockGDBStub()
        debugger = GDBDebugger(mock_stub)
        num_exits = Counter()
        debugger.add_exit_observer(num_exits.increment)

        debugger.pause()
        self.assertEqual(1, num_exits.value)
        debugger.resume()

        mock_stub.simulate_exit()
        self.assertEqual(2, num_exits.value)
        debugger.resume()

        debugger.add_exit_observer(num_exits.increment)
        mock_stub.simulate_exit()
        self.assertEqual(4, num_exits.value)
        debugger.resume()

        debugger.remove_exit_observer(num_exits.increment)
        mock_stub.simulate_exit()
        self.assertEqual(5, num_exits.value)
        debugger.resume()

        debugger.remove_exit_observer(num_exits.increment)
        mock_stub.simulate_exit()
        self.assertEqual(5, num_exits.value)
        debugger.resume()
Exemplo n.º 3
0
 def test_basics(self):
     mock_stub = MockGDBStub()
     debugger = GDBDebugger(mock_stub)
     debugger.pause()
     debugger.resume()