当前位置: 技术问答>linux和unix
大虾,怎么用gdb调试多进程程序啊?
来源: 互联网 发布时间:2015-02-16
本文导语: ... 1. int main() 2. { 3. if(fork() == 0) 4. { 5. printf("Child Process say hello to you!n"); 6. exit(0); 7. } 8. else 9. printf("Parent Process, Hellon"); 10. 11. ret...
...
1. int main()
2. {
3. if(fork() == 0)
4. {
5. printf("Child Process say hello to you!n");
6. exit(0);
7. }
8. else
9. printf("Parent Process, Hellon");
10.
11. return 0;
12. }
在Line 5设置breakpoint不管用耶,哪位大虾能指点迷津
1. int main()
2. {
3. if(fork() == 0)
4. {
5. printf("Child Process say hello to you!n");
6. exit(0);
7. }
8. else
9. printf("Parent Process, Hellon");
10.
11. return 0;
12. }
在Line 5设置breakpoint不管用耶,哪位大虾能指点迷津
|
没办法。你只能attach到子进程上然后才能去调试它。
gdb好像还是不支持类似dbx的follow child命令?
gdb好像还是不支持类似dbx的follow child命令?
|
可以指定具体的中断到某一行的,有好几中方法的
1、先把指定的函数反汇编
gdb>disas funcname
0x80....
gdb>b *0x80.... //需要中断的地址
2、如果要用c的源文件要先倒入原始文件(我也记不太清楚了,好象是这么操作的)
gdb> symbol-file filename
gdb> b 5
gdb> symbol-file runfilename
gdb> r
...
//应该还有其他的方法吧
1、先把指定的函数反汇编
gdb>disas funcname
0x80....
gdb>b *0x80.... //需要中断的地址
2、如果要用c的源文件要先倒入原始文件(我也记不太清楚了,好象是这么操作的)
gdb> symbol-file filename
gdb> b 5
gdb> symbol-file runfilename
gdb> r
...
//应该还有其他的方法吧
|
去www.gnu.org下一份gdb的文档:)