如果是想用GDB工具进行调试在gcc选项中加入-g
例如:gcc *.c -o -g * (其中*是你的文件名,两个*可以不同)
然后用 gdb *(上面命令中第二个*)
然后,就看你想怎么调试了。
GDB有很多命令
list列出代码
break 设置断点
run 运行程序
step 但不执行
quit 退出
……
你这个是多进程的。说实话,没用GDB调过。
不过简单看来你的子进程没有exit()函数。
如果你运行结果不对,那么看看你的子进程的问题吧
gdb是GNU开源组织发布的一个强大的Linux程序调试工具,比图形化的调试工具更强大,主要来调试C/C++语言程序。
Debug 版本的可执行程序包含调试信息,用于程序员调试程序。
Release 版本的可执行程序往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以方便用户使用。
用gcc/g++编译时,要加上-g选项生成debug版本的可执行程序,否则就无法使用gdb调试了。
r 表示开始run, 如果在运行的过程中发生了错误,比如segmentation fault,可以查看此时的出错源代码:
通过b或者break设置断点,断点的设置可以通过函数名、行号、文件名+函数名、文件名+行号以及偏移量、地址等进行设置。
比如在function Peer_auto_save上设置断点,在peer.c的第136行设置断点:
从断点处继续运行
退出gdb
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)