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

标签: none

添加新评论