首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用gdb在BSD上调试forks

使用gdb在BSD上调试forks
EN

Stack Overflow用户
提问于 2012-06-15 14:20:49
回答 1查看 241关注 0票数 1

目前,GDB在fork之后跟随子进程有一个问题。我在网上看到的一个解决办法是使用以下说明进行修补:

call 0x8048740 <fork@plt>

详情如下:

代码语言:javascript
复制
gdb$ set *(0x08048d1f+1)=0x90909090
gdb$ set *(0x08048d1f)=0x9090c033

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

代码语言:javascript
复制
xor    eax,eax
nop    
nop    
nop

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-15 14:33:51

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

我以前回答过一个similar question,你也可以用同样的方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11045548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档