def _test_module_debug_info(self, use_proc_and_sys): old_use_proc_and_sys = ( int(os.environ.get("DRGN_USE_PROC_AND_SYS_MODULES", "1")) != 0 ) with setenv("DRGN_USE_PROC_AND_SYS_MODULES", "1" if use_proc_and_sys else "0"): if old_use_proc_and_sys == use_proc_and_sys: prog = self.prog else: prog = Program() prog.set_kernel() self._load_debug_info(prog) self.assertEqual(prog.symbol(self.SYMBOL).address, self.symbol_address)
def _test_by_pid(self, orc): old_orc = int(os.environ.get("DRGN_PREFER_ORC_UNWINDER", "0")) != 0 with setenv("DRGN_PREFER_ORC_UNWINDER", "1" if orc else "0"): if orc == old_orc: prog = self.prog else: prog = Program() prog.set_kernel() prog.load_default_debug_info() pid = fork_and_pause() wait_until(lambda: proc_state(pid) == "S") self.assertIn("pause", str(prog.stack_trace(pid))) os.kill(pid, signal.SIGKILL) os.waitpid(pid, 0)