gdb的常用命令

当代码写好了并在Linux上运行的时候,有的时候程序会崩溃,比如数组越界、除0、访问了野指针等。这就需要查找程序中的bug,使用gdb是一个比较好的方法。

对一个二进制进行调试的时候,执行`gdb bin`就可以了,bin代表要测试的二进制,如果是要调试core文件,执行`gdb bin corefile`core file是程序coredump时候将内存dump到磁盘上的文件,这样就可以快速的查看core的位置了。

另外也可以在线的调试程序`gdb attach $pid`,$pid代表进程号。

如果想要对二进制进行gdb调试,需要在编译的时候加上`-g`的编译参数,如果是使用bazel进行编译,需要指定`bazel //pos/to:target -c dbg`,表示编译出来的二进制中包含了gdb调试符号

下面列出gdb调试程序的一些基本命令:

  • run 启动当前的进程,功能和start类似
  • set args 设置变量的值
  • block 设置断点,缩写是b,
  • delete 删除断点,可以先info下所有的断点,然后删除调指定的序号的断点
  • info 和locals一起使用,能够将当前帧的所有变量打印出来
  • print 打印变量,如果是指针的时候,需要解引用
  • next 执行下一句
  • step 进入到函数的内部
  • list 查看程序运行到的位置
  • continue 如果是使用了gdb attach去在线的调试,或者是设置了断点后程序停止了,需要使用c去继续执行
  • backtrace 查看进程当前的栈信息
  • frame 可以直接的跳转到对应的帧
  • show 可以展示出来一些变量值
  • call 调用函数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值