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()
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()
def test_basics(self): mock_stub = MockGDBStub() debugger = GDBDebugger(mock_stub) debugger.pause() debugger.resume()