博观而约取,厚积而薄发。这篇文章主要讲述gdb调试的常用参数说明相关的知识,希望能为你提供帮助。
gcc hello.c -g -o hello 就会生成待调试信息的hello可执行程序
gdb hello 就会进入调试状态
查看源代码:
l 查看main源代码(L的小写,不是数字1),list的缩写
l [filename:linenum] 查看指定文件的指定行的源代码
继续查看按l
l [filename:func] 查看指定文件的指定函数的源代码
继续查看按l
设置断点:
b [linenum] 第几行打断点,或者break的缩写
b [10] if [i==5] 就是在第十行当i等于5时停下
b [func] 在func函数入口处打断点
del/d [num] 删除断点,del即delete,num通过info break查看,没有[num]表示全部删除,num也可以是一个范围,比如(2,8)
disable [num] 禁用断点,num通过info break查看
enable [num] 启用断点,num通过info break查看
查看值:
i b 查看断点,i即info,b即break,
p a 打印变量a的值,p即print
ptype a 打印a的变量类型
display a 追踪变量a,一般循环里面使用
undisplay [num] 不追踪变量,num通过info display查看
set var i=10 直接从i等于10开始执行,一般用于循环里面
运行程序:
start 启动调试,只执行一行代码
r 即run,启动调试,执行到第一个断点的位置
quit 退出调试状态
n 即next,执行下一步
c 即continue,执行到下一个断点处
u 即util,跳出单次循环
s 即step,进入函数
finish 跳出当前函数,需要先删除该函数的所有断点del [num]
多进程调试:
set follow-fork-mode parent 跟踪父进程
set follow-fork-mode child 跟踪子进程
附:一定要在fork之前设置才有效
【gdb调试的常用参数说明】
推荐阅读
- gcc常用的参数说明
- android---后台杀死进程依然保存数据
- Android各种文件解析
- Android中的消息处理机制
- Android 事件传递机制
- Android Activity组件及其生命周期
- 家庭记账本app进度之android中AlertDialog的相关应用以及对日期时间的相关操作(应用alertdialog使用的谈话框)
- 安卓APP开发的初步了解
- 寒假家庭小账本——android studio安装及配置