如何强制IDA仅使用一个伪代码标签页?
解决IDA调试时F7频繁打开伪代码标签页的问题
修改IDA自带设置(最优解)
直接关闭自动新建伪代码窗口的行为:- 点击顶部菜单栏的
Options->General - 在弹出的设置窗口中切换到
Pseudocode标签页 - 取消勾选「Entering a function opens a new pseudocode window」(不同IDA版本翻译略有差异,核心是“进入函数时打开新伪代码窗口”的选项)
设置完成后,按F7进入函数时,只会在当前激活的伪代码窗口里刷新显示新函数的代码,不会再生成新标签页。
- 点击顶部菜单栏的
用快捷键手动复用窗口
若不想改动全局设置,调试时按F7进入函数后,立刻按Shift+F5,这个快捷键会强制在当前伪代码窗口刷新显示当前函数的伪代码,直接覆盖原有内容,避免新标签页产生。优化Python插件方案
如果你还是想用插件实现,不用每次关闭多余窗口,可以直接监听调试事件,更新主伪代码窗口内容:import idaapi import idc class DebugHook(idaapi.IDB_Hooks): def dbg_func_start(self, tid, ea): # 获取主伪代码窗口 widget = idaapi.get_widget_by_name("Pseudocode-A") if widget: # 跳转到当前函数并刷新伪代码 idaapi.jumpto(ea) idaapi.refresh_pseudocode(widget, True) return 0 # 注册钩子 hook = DebugHook() hook.hook()这段代码会监听函数进入的调试事件,直接把主伪代码窗口的内容更新到当前函数,配合关闭自动新建窗口的设置,就能完全避免多余标签页。
内容的提问来源于stack exchange,提问作者BlackHole
相关产品推荐
相关产品推荐

