gdb调试C的一些小笔记

单纯只是自己在写ECE637这门课的时候想把代码吃透一些才搞这些的,开这篇文章也只是单纯的自己记性不好而已。
一些基础操作可以参考的网站:gdb 调试利器

一般操作

1. 带参数的gdb

You can run gdb with --args parameter

gdb --args executablename arg1 arg2 arg3

Or you can enter gdb and then use command:

set args arg1 arg2 arg3

2. 切换tui窗口

方案一:

gdb -tui executablename

方案二:
先使用gdb命令再利用ctr + X + A来切换

3. 设置断点的一些需要记忆的

大妈我特别健忘…

  • break n (简写b n):在第n行处设置断点
    (可以带上代码路径和代码名称: b OAGUPDATE.cpp:578)
  • b fn1 if a>b:条件断点设置
  • break func(break缩写为b):在函数func()的入口处设置断点,如:break cb_button
  • delete 断点号n:删除第n个断点
  • disable 断点号n:暂停第n个断点
  • enable 断点号n:开启第n个断点
  • clear 行号n:清除第n行的断点
  • info b (info breakpoints) :显示当前程序的断点设置情况
  • delete breakpoints:清除所有断点:

4. 跳出当前function

You can use the finish command.

finish: Continue running until just after function in the selected stack frame returns. Print the returned value (if any). This command can be abbreviated as fin.

遇到的一些Error

1. no debugging symbols found

报错

Reading symbols from Example...(no debugging symbols found)...done.

需要在gcc编译的时候加上-g或者是在Makefile文件里面做相应的修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值