目前,GDB在fork之后的子进程之后存在问题。我在网上看到的一个工作是使用以下指令补丁: -
call 0x8048740 <fork@plt>
如下: -
gdb$ set *(0x08048d1f+1)=0x90909090
gdb$ set *(0x08048d1f)=0x9090c033
执行此操作将说明设置为: -
xor eax,eax
nop
nop
nop
因此,作为子进程执行的代码由父进程执行,并且无法对其进行调试。但是,每次我必须调试过程时输入两个步骤语句太繁琐了。有没有什么办法可以指示gdb每次附加到进程时修补这些指令?某种自动化,可能有限吗?
答案 0 :(得分:2)
使用gdb extensions有几种方法可以扩展您的GDB命令列表。 Python脚本支持是自7.1版本以来GDB的最新发展。但是,根据您的要求,您不需要太多脚本。您可以使用最简单的define
命令。
一段时间后我回答了similar question,你可以使用相同的方法。