我正在尝试为GDB编写一个Python脚本来跟踪一个函数。
想法是在地址上设置一个断点,让程序运行然后,当程序中断时,记录到文件寄存器,向量和堆栈,找出下一条指令的地址,设置一个断点定位并冲洗并重复。
我阅读了文档,我很自信寄存器,向量和内存位置可以轻松转储。实际问题是找到下一个指令位置所需的内容,以分析当前指令的反汇编以确定下一个断点的位置。
更新
我在不使用stepi
或nexti
的情况下完成所有这些操作,因为我正在调试的目标仅适用于硬件断点,据我所知,这些命令使用软件断点来破坏下一条指令
GDB中有类似的东西吗?
答案 0 :(得分:0)
是的,您可以在gdb中执行此操作。您可以使用si
命令单步执行下一条指令,而不是尝试在下一条指令上设置断点。