使用gdb在BSD上调试forks

时间:2012-06-15 06:20:49

标签: debugging gdb freebsd bsd

目前,GDB在fork之后的子进程之后存在问题。我在网上看到的一个工作是使用以下指令补丁: -

call 0x8048740 <fork@plt>

如下: -

gdb$ set *(0x08048d1f+1)=0x90909090
gdb$ set *(0x08048d1f)=0x9090c033

执行此操作将说明设置为: -

xor    eax,eax
nop    
nop    
nop

因此,作为子进程执行的代码由父进程执行,并且无法对其进行调试。但是,每次我必须调试过程时输入两个步骤语句太繁琐了。有没有什么办法可以指示gdb每次附加到进程时修补这些指令?某种自动化,可能有限吗?

1 个答案:

答案 0 :(得分:2)

使用gdb extensions有几种方法可以扩展您的GDB命令列表。 Python脚本支持是自7.1版本以来GDB的最新发展。但是,根据您的要求,您不需要太多脚本。您可以使用最简单的define命令。

一段时间后我回答了similar question,你可以使用相同的方法。