Linux中c程序调试技巧

第一,观察代码,寻找问题


第二,手工调试

1,观察代码,打印的方式(打印行号)调试

方式一,priintf("[%d]\n",_LINE_);

方式二,

代码中新增 (宏)  #ifdef DEBUG

                           priintf("[%d]\n",_LINE_);

                           #endif

编译:gcc debugme.c -o debugme -DDEBUG

运行:./gebugme

此粗的错误为段错误:Segmentation fault


第三,利用 core  dump 文件

1,core dumped :文件是发生段错误时的快照。

注:

core dumped 文件默认大小是0,也就是默认不产生的,ulimit -a:

需要去更改设置  ulimit -c unlimited

2.调试程序:添加 core 文件在后面:gdb ./debugme core(输出结果会指出程序哪里有问题)

注:core文件不一定准确

 


第四,gdb调试

以上方法都不行时,在使用gdb一步一步调试

猜你喜欢

转载自blog.csdn.net/w6655515/article/details/81511805
今日推荐