【问题标题】:debugging forks on BSD using gdb使用 gdb 在 BSD 上调试分支
【发布时间】:2012-06-18 05:18:23
【问题描述】:

目前 GDB 在 fork 后跟随子进程存在问题。我在网上看到的一种解决方法是使用以下说明进行修补:-

call 0x8048740 <fork@plt>

如下:-

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

这样做会将指令设置为:-

xor    eax,eax
nop    
nop    
nop

因此,应该作为子级执行的代码由父级执行,并且我能够对其进行调试。但是,每次我必须调试过程时都输入两个步骤语句太乏味了。每次我附加到进程时,有什么方法可以指示 gdb 修补这些指令?某种自动化,尽管它可能是有限的?

【问题讨论】:

    标签: debugging gdb freebsd bsd


    【解决方案1】:

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

    我之前回答过similar question,您可以使用相同的方法。

    【讨论】:

      猜你喜欢
      • 2012-11-21
      • 2018-12-18
      • 2013-04-22
      • 2020-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      相关资源
      最近更新 更多