版权声明:本文为博主原创文章,欢迎转载,转载请声明出处! https://blog.csdn.net/hansionz/article/details/82633439
Linux调试器-gdb
注意:
- 1.gcc/g++编译出来的二进制程序,
默认是release版本
的,没有调试信息 - 2.要使用gdb调试,必须在源代码生成二进制程序的时候,加上
-g
选项,产生调试信息 - 3.使用gdb调试的程序一定是
运行时错误
,语法错误会在编译时候报错
1.gdb的使用
在学习gdb的过程中一定要和在vs中调试代码对应
起来:
gdb 可执行文件
开始调试Ctrl+d或者q
退出gdb
下边是和vs调试时各种操作对应命令学习:
l/list
显示源代码,每次列10列(在vs中直接可以看到)
l/list 函数名
显示函数的源代码(在vs中直接可以看到)
r/run
连续运行程序不是单步(对应vs中的F5)
n/next
单条执行(对应vs中的F10逐过程)
s/step
进入函数调用(对应vs中的F11逐语句)
b/break 行号
在某行设置断点(对应vs中的F9)
b/break 函数名
在某函数开头设置断点(对应vs中的F9)
info b/break
查看断点信息(右击断点查看断点信息)
finish
执行当前函数返回,停下来等待命令p 变量
打印变量的值(对应vs中监视中输入变量查看值)
print(表达式)
打印表达式的值(对应vs中监视中输入表达式查看值)
set var
修改变量的值c/continue
从当前位置连续而非单补执行程序(对应vs中的从当前断点跳到下一断点F5)
d/delete breakpoints
删除所有断点d/delete 断点编号
删除某个断点(对应vs中的F9)
disable 断点编号
禁用某个断点enable 断点标号
启用某个断点display 变量名
让某个变量常显示(对应vs中监视中输入变量查看值)
undisplay
取消常显示until 行号
跳至某行bt/breaktrace
查看各级函数调用及参数info locals
查看当前栈帧局部变量的值