我打开一个新线程,因为我回复了一个正在做我想做的现有人...但我不能得到相同的结果......
以下是主题:gdb debugging process after exec call
我只想调试一个" execled"应用gdb。
这是我的C程序的样子:
$ ls ABC_2016*
ABC_20161231225950.sha1 ABC_20169231225990.sha1
$ find . -type f -name 'ABC_2[0-9][0-9][0-9][0-1][0-2][0-3][0-9][0-2][0-2][0-5][0-9][0-5][0-9].sha1'
./ABC_20161231225950.sha1
当我在线时:
if( !fork() )
execl("./exec/nuitretard","nuitretard","S","1000","000","N",ZZTOP);
else wait(&status);
Recup();
我在gdb中做:
97 if( !fork() )
我把我的gdb"打破主要"在所有主要功能上命令断点不是吗?所以,如果我按下一行,我应该进入nuitretard的主要号码吗? 但是当我这样做时,我得到了这个:
(gdb) set follow-fork-mode child
(gdb) break main
Breakpoint 2 at 0x40198c: main. (2 locations)
(gdb) n
[New process 9034]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Switching to Thread 0x7ffff7eb3780 (LWP 9034)]
98 execl("./exec/nuitretard","nuitretard","S","1000","000","N",ZZTOP);
所以我没有停留在我的" nuitretard"程序:/
我做错了什么? 谢谢你的帮助。
编辑:我显然用-g编译了两个程序来调试。我在Linux ubuntu上。