Linux下使用gdb进行C-C++程序调试第一讲
【摘要】
意外发现一篇–大佬早期撰写的–用GDB调试程序 – 命令非常详尽
认识 gdb
gdb 工具 可以在Linux 中对 C、C++代码进行调试
安装 gdb
使用 具备 sudo 权限的用...
认识 gdb
gdb 工具 可以在Linux 中对 C、C++代码进行调试
安装 gdb
使用 具备 sudo 权限的用户 执行如下命令进行安装,普通用户即可使用;
sudo apt install gdb
- 1
一个C程序 使用 gdb 进行debug 调试
vim string.c
- 1
程序内容如下,第9行 使用了 没有初始化 的变量 string ;
#include<stdio.h>
#include<stdlib.h>
static char buff [256];
static char * string;
int main(){
printf("Hello zhijian");
printf("%s\n", string);
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 普通的 gcc 编译运行效果如下:
gcc -o moli.o string.c
./moli.o
输出如下:我们很难直接定位错误的位置
Segmentation fault (core dumped)
- 1
- 2
- 3
- 4
- 5
- 6
- 使用 gdb 命令来进行调试
gcc -o bug -ggdb string.c
装入bug 可执行文件,进入调试模式
gdb bug
执行命令顺序如下:
l
run
where
quit
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 操作效果如下:
定位到报错位置,我们更容易推断出错误原因:string变量没有赋初值
文章来源: positive.blog.csdn.net,作者:墨理学AI,版权归原作者所有,如需转载,请联系作者。
原文链接:positive.blog.csdn.net/article/details/114174844
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)