gdb args 设置参数,查看参数
gdb ./test
b main
set args .
r
p argc
p argv[0]
p argv[1]
gdb> b main
gdb>......
gdb> set args 127.0.0.1
gdb> r
gdb> p argc ------ 值:2
gdb> p argv @1 ------- 值:127.0.0.1
gdb调试命令的使用及总结
设置断点 (gdb) b 6
这样会在运行到源码第6行时停止,可以查看变量的值、堆栈情况等;这个行号是gdb的行号。
查看断点处情况 (gdb) info b
可以键入"info b"来查看断点处情况,可以设置多个断点;
运行代码 (gdb) r
显示变量值 (gdb) p n
在程序暂停时,键入"p 变量名"(print)即可;
GDB在显示变量值时都会在对应值之前加上"$N"标记,它是当前变量值的引用标记,以后若想再次引用此变量,就可以直接写作"$N",而无需写冗长的变量名;
观察变量 (gdb) watch n
在某一循环处,往往希望能够观察一个变量的变化情况,这时就可以键入命令"watch"来观察变量的变化情况,GDB在"n"设置了观察点;
单步运行 (gdb) n
程序继续运行 (gdb) c
使程序继续往下运行,直到再次遇到断点或程序结束;
10)退出GDB (gdb) q
Referenced from:https://www.jb51.net/article/36393.htm
GDB常用命令使用说明(一) - 爱折腾的西山居士 - 博客园
update:2021-11-16
gdb使用前置条件:编译时加入debug信息。
gcc/g++是在编译时加入-g,其他语言请自行百度。值得注意的是,-g分4个等级:
-g0等于不加-g。即不包含任何信息
-g1只包含最小信息,一般来说只有你不需要debug,只需要backtrace信息,并且真的很在意程序大小,或者有其他保密/特殊需求时才会使用-g1。
–g2为gdb默认等级,包含绝大多数你需要的信息。
–g3包含一些额外信息,例如包含宏定义信息。当你需要调试宏定义时,请使用-g3
二、gdb最常见的几个用法:
1. 调试程序。有几种方法可以在gdb下运行你的程序:
1) gdb ${你的程序} 进入gdb后,输入run(简写r) ${arg1} ${arg2} … ${argN}
2) gdb --args ${你的程序} ${arg1} ${arg2} … ${argN} 进入gdb后,运行run。
3) gdb进入gdb后,输入file ${你的程序}。然后使用set args ${arg1} ${arg2} … ${argN} 设定好你的程序参数,再运行run。
2. 调试正在运行的程序:
gdb ${你的程序} ${程序pid}
3. 查core:
gdb ${你的程序} ${core文件}
Referenced from:https://www.cnblogs.com/xsln/p/gdb_instructions1.html
本文链接地址:https://const.net.cn/617.html