1. gdb
[GDB调试教程:1小时玩转Linux 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 : 在线调试信息服务器
[Debuginfod]
标签:文件,查看,命令,gdb,常用命令,test,断点 From: https://www.cnblogs.com/weixicai/p/17473519.html