GDB调试笔记

GDB调试笔记,第1张


前言

编程是一门严谨的学科,即使是优秀的程序员在进行编程的过程中也不可避免的会出现错误。完美的程序需要经历工匠精神不断的打磨与调试。调试的目的有两个:一是纠错,二是“美化”。本章内容主要介绍“纠错”,程序中的错误包括两种,一种是逻辑错误,一种是语法错误。
任何一种错误存在都会对我们想要的结果产生影响。当程序中存在语法错误时,编译器将会自动识别,即:程序无法实现编译过程;当程序中存在逻辑错误时,程序可以编译运行,但是结果通常是错的,这就要求程序员逐步对代码进行“检修”。GDB正式代码“检修”常见的工具之一。


一、GDB是什么?

GDB,全称:GNU symbolic debugger,是Linux 下使用最多的一款调试器,也有 Windows 的移植版,通常用来调试C、C++等语言。对我来说,主要是在windows和mac系统调试fortran程序。
本次笔记的目的主要是记录常用的GDB调试命令,便于以后查询。

二、使用步骤 1.编译程序

gfortran -g -o test Implicit.f90
编译好的文件叫 test,程序文件较Implicit.f90

2.调试程序

gdb test

3.调试命令
  1. run (r)——运行;
    重新编译则需要重新运行,否则无需多次运行;
  2. continue (c)——继续;
  3. break(b)——断点; 如:b 5,
  4. tbreak + 行号或函数名(tbreak n/func)——设置临时断点,到达后被自动删除;
  5. break + filename + 行号(break Implicit.f90:10)——在指定文件对应行设置断点;
  6. break + 行号 + if + 条件(break 260 if j950=3)——设置条件断点,在循环中使用非常方便 ;
  7. print (p)—— 显示变量值; 如p n,显示变量n的值;
  8. line (l)——查看源码,十行为一组;如果需要查看在其他文件中定义的函数,在l后加上函数名即可定位到这个函数的定义及查看附近的其他源码。或者:使用断点或单步运行,到某个函数处使用s进入这个函数。
  9. info breakpoints/watchpoints ——查看程序内的断点或观察点情况,是所有断点或观察点;
  10. watch ——设置观察点;
    rwatch + 变量  设置一个观察点,当变量被读出时,程序被暂停 ;
    awatch/watch + 变量  设置一个观察点,当变量被读出或写入时程序被暂停
  11. n——单步运行;
  12. q——退出调试;
  13. clear + 要清除的断点行号 用于清除对应行的断点,要给出断点的行号,清除时GDB会给出提示;
  14. delete + 要清除的断点编号 用于清除断点和自动显示的表达式的命令,要给出断点的编号,清除时GDB不会给出任何提示
  15. disable/enable + 断点编号 让所设断点暂时失效/使能,如果要让多个编号处的断点失效/使能,可将编号之间用空格隔开

总结

以上只总结了常用命令,参考链接如下:

reference

1.https://blog.csdn.net/weixin_43913107/article/details/101713638
2. http://c.biancheng.net/view/vip_8514.html

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1330928.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存