gdb使用入门
【
sudo dnf debuginfo-install glibc-2.32-2.fc33.x86_64
编译时, gcc -g test.c -o test,因为在调试二进制文件的时候,我们需要在二进制文件中加入调试信息,而调试信息是怎么添加的呢?它是在编译的时候,通过-g选项添加的,即类似于gcc -g test.c -o test这样的命令。缺少-g参数会出现出错信息【No symbol table is loaded. Use the "file" command.】,添加之后执行文件稍微变大。
开始调试时,gdb test --silent;再次运行或提示【】, 换别的执行文件需要命令 file test
GDB常见的调试指令
gcc -g [option] [file]
gdb 可执行文件
1.常见命令
-
l(list):查看载入的文件代码,如:l 10,l main; -
b(break):设置断点,如:b 10,b main; -
info b:查看断点信息; -
r(run):从main运行,到断点处暂停; -
v 行号:从该行号开始运行; -
p(print) n:查看n值; -
n(next):单步下行; -
s(step):单步进入; -
c(continue):恢复程序的运行,执行下面程序;
2.高级命令
-
disable 点;
-
enable 点;
-
delete 点info编号;
-
tbreak 临时断点(一次);
-
condition 点 <条件>;
-
ignore 点
查看源代码相关命令
-
list(l) <行号>/<函数名>;
-
file [文件名] 加载文件;
-
forword-search 正则表达式;
-
reverse-search 正则表达式;
-
show directories 源文件路径;
-
disassemble 函数名:反汇编;
-
info line 显示加载内存gdb码;
设置工作环境相关命令
-
set args 参数 //main(args)
-
show args
-
path dir 设定程序运行路径
-
show paths 查看程序运行路径
-
set envirnment var[=value] 环境变量
-
show envirnment var/PATH
-
cd dir
-
pwd
-
shell commend
查看运行数据相关命令
-
print(p) 表达式、变量
-
x /<n/f/u> <addr>查看内存变量内容-
n:表示显示内存长度(整数) -
f:表示显示格式-
d:十进制 -
x:十六进制 -
o:八进制 -
t:二进制
-
-
u: 表示显示字节数 -
<addr>:变量内存地址
-
-
display 表达式
-
display /i $pc显示c和汇编同步 -
x /i $pc程序计数器
-
gdb core 使用(找段错误)
-
打开core dump
-
ulimit -c默认大小为0 -
ulimit -c size(k)
-
-
gcc -g 源 -o 目文件
-
运行有问题产生的core文件
-
gdb 可执行文件 core文件
2, Debuginfod : 在线调试信息服务器
本文来自博客园,作者:安然春夏,转载请注明原文链接:https://www.cnblogs.com/weixicai/p/17555180.html。测试只能证明程序有错误,而不能证明程序没有错误。你必须非常努力,才能看起来毫不费力。

浙公网安备 33010602011771号