GDB调试笔记


前言

编程是一门严谨的学科,即使是优秀的程序员在进行编程的过程中也不可避免的会出现错误。完美的程序需要经历工匠精神不断的打磨与调试。调试的目的有两个:一是纠错,二是“美化”。本章内容主要介绍“纠错”,程序中的错误包括两种,一种是逻辑错误,一种是语法错误。
任何一种错误存在都会对我们想要的结果产生影响。当程序中存在语法错误时,编译器将会自动识别,即:程序无法实现编译过程;当程序中存在逻辑错误时,程序可以编译运行,但是结果通常是错的,这就要求程序员逐步对代码进行“检修”。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.youkuaiyun.com/weixin_43913107/article/details/101713638
2. http://c.biancheng.net/view/vip_8514.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值