前言:
今天才开始看Linux C编程一站式学习这本书,感觉挺详细的,值得看看。以前也没写过博客,希望借此来督促自己认真看这本书,同时也当做笔记了。
gdb的一些最基本的调试命令总结已经在树上了,图表:
命令 | 描述 |
---|---|
backtrace(或bt) | 查看各级函数调用及参数 |
finish | 连续运行到当前函数返回为止,然后停下来等待命令 |
frame(或f) 帧编号 | 选择栈帧 |
info(或i) locals | 查看当前栈帧局部变量的值 |
list(或l) | 列出源代码,接着上次的位置往下列,每次列10行 |
list 行号 | 列出从第几行开始的源代码 |
list 函数名 | 列出某个函数的源代码 |
next(或n) | 执行下一行语句 |
print(或p) | 打印表达式的值,通过表达式可以修改变量的值或者调用函数 |
quit(或q) | 退出gdb 调试环境 |
set var | 修改变量的值 |
start | 开始执行程序,停在main 函数第一行语句前面等待命令 |
step(或s) | 执行下一行语句,如果有函数调用则进入到函数中 |
其中,按回车会直接执行上一次的命令。
在公司调试core文件, 使用的是gdb + 程序名 + core文件, 这种方法暂时没看到,以后有机会再在这里记录。
一般在调试core文件时,bt用的比较多, 查看栈帧直接定位到哪个函数出问题了。
今天只试了第一节的命令,后面还有很多,之后会继续记录。。。。