博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gdb调试小结
阅读量:2231 次
发布时间:2019-05-09

本文共 999 字,大约阅读时间需要 3 分钟。

    

一  gdb最基本的调试命令
1 以调试程序test.cpp为例:
编译时加上 -g
cygwin中测试 编译test.cpp
g++ -g -o test test.cpp
进入调试环境 gdb test
2. b 12
在文件的第12行设置断点。
删除断点:
info b 列出所有的断点信息
(gdb) info b
Num Type           Disp Enb Address    What
1   breakpoint     keep y   0x004010f1 in main at test.cpp:17
    breakpoint already hit 1 time
2   breakpoint     keep y   0x00401120 in main at test.cpp:23
    breakpoint already hit 1 time
 
要删除第2个断点
 d 2
如果不指定断点号,则表示删除所有的断点
3.r –d
执行当前被调试的程序.-d是运行参数
4.  p variable
打印数据内容
5.  l
列出产生执行文件的源代码的一部分.
6. n
执行一行源代码但不进入函数内部。
7.  s
执行一行源代码而且进入函数内部。
8.  c
继续执行程序,直至下一中断或者程序结束。
9. k
终止正在调试的程序.
10. q
终止 gdb.
11 跳出某个函数
finish
二  附注:基本gdb命令:
命令
简写
功能
file
 
装入想要调试的可执行文件.
kill
k
终止正在调试的程序.
list 
l
列出产生执行文件的源代码的一部分.
next
n
执行一行源代码但不进入函数内部.
step
s
执行一行源代码而且进入函数内部.
continue
c
继续执行程序,直至下一中断或者程序结束。
run
r
执行当前被调试的程序.
quit
q
终止 gdb.
watch
 
使你能监视一个变量的值而不管它何时被改变.
catch
 
设置捕捉点.
thread
t
查看当前运行程序的线程信息.
break
b
在代码里设置断点,这将使程序执行到这里时被挂起.
make
 
使你能不退出 gdb就可以重新产生可执行文件.
shell
 
使你能不离开 gdb就执行 UNIX shell命令.
print
p
打印数据内容。
examine
x
打印内存内容。
backtrace
bt
查看函数调用栈的所有信息。

 

转载地址:http://ljybb.baihongyu.com/

你可能感兴趣的文章
【Linux】内核态和用户态
查看>>
【Linux】HTTP的理解
查看>>
【Linux】HTTPS的理解
查看>>
【操作系统】大小端问题
查看>>
Git上传代码时碰到的问题及解决方法
查看>>
【Linux】vim的简单配置
查看>>
【C++】智能指针
查看>>
【C++】const修饰的成员函数
查看>>
【C++】面向对象的三大特性
查看>>
【C++】智能指针(后续)
查看>>
【C】堆区和栈区的区别
查看>>
【linux】send和recv函数解析
查看>>
【Linux】线程安全的单例模式以及计算密集型线程和IO密集型线程
查看>>
一次完整的HTTP请求是怎样的??
查看>>
【C++】常见的内存泄漏及解决方法
查看>>
【C++】const 指针与指向const的指针
查看>>
【Linux】多线程和多进程 及其应用场景
查看>>
【C++】构造函数中必须通过初始化列表来进行初始化情况
查看>>
【算法】对于大数的操作
查看>>
【操作系统】系统调用的概念
查看>>