• [转载].gdb调试器快速入门


    调试在我们编写程序时占有重要的地位。在linux下如何使用gdb调试器?下面采用FQA的方式让你快速了解gdb调试器。

    1.如何启动gdb调试器呢?

    在终端输入 gdb 程序文件名 即可。注意gdb调试的是可执行文件,而不是源代码。因此此处的文件名应该是可执行程序文件名。成功进入gdb后会显示一大段文字说明,然后是gdb提示符:(gdb) 。

    请注意在进入gdb之前应该按照如下方式编译源程序:

    gcc -g test_gdb.c -o test_gdb

    只有加入选项-g才能被gdb调试。

    2.除了上述方法,还有其他方法进入gdb吗?

    直接在终端输入:gdb,成功进入后,使用file命令装入要调试的程序。输入: file 程序文件名 即可。

    3.我成功进入了gdb,如何退出呢?

    使用quit命令,输入: quit 即可。

    4.进入gdb后,我要查看源代码必须退出才能查看吗?

    当然不用。下面的命令可以帮助你快速查看源码。

    list: 显示10源代码,再次输入该命令显示接下来的10行。

    list 1,10:显示从第一行到第10行的代码。

    list 函数名:显示此函数名周围的代码。

    5.gdb可以设置断点吗?如何设置?

    在gdb中最简单的设置方式是:break 行号 在这一行设置断点。比如break 9 会在代码的第9行设置断点。当程序执行到第9行会自动暂停,此时,第9行代码还未执行。

    你也可以使用:break 函数名 的方式在某个函数处设置断点,程序运行到这个函数内的第一条语句处会自动暂停。

    你也可以这样设置断点:break 行号或函数名 if 条件 。它很好理解,当满足if条件语句时才会在指定的行号或者函数名处断点。

    6.我发现我把断点设置错了,如何消除断点?

    使用命令:clear 行号 即可删除。

    7.我已经成功设置了断点,可是我如何运行程序以便让它在断点处暂停?

    输入:run 即可。程序自动停止在第一个断点处。

    8.我的程序运行的时候需要加参数,我还能继续使用run命令运行程序吗?

    当然可以,只不过你要在run后加上你的参数,参数间用空格隔开。如:run 参数1 参数2  …..

    9.有时候我并不确定程序具体哪一句有问题,我如何一步一步的查看语句?

    两种命令:next和step。两者均可以一句一句的查看语句。但不同的是,next命令将函数调用看作一条语句,而step则会进入函数,一步步的执行函数内的代码。

    10.如何让暂停的代码继续运行?

    输入命令:continue。它可以让程序继续运行,直到程序运行完毕或者遇到下一个断点为止。

    11.当程序在断点处暂停执行时,如何查看当前变量的值?

    使用print命令。具体如下:

    print 命令或者表达式:显示变量或表达式的值。

    print 变量=值:为变量赋值。

    以上命令属于基本的调试命令,更多的命令可以参考man手册。

    熟悉以上命令便可以快速入门gdb,要熟练的使用调试器,还需要多多使用。

    参考资料:人民邮电出版社 《Linux C编程实战》 董永清

  • 相关阅读:
    (转)UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
    (转)使用 Document!X 为自己的dll生成一个漂亮的说明文档
    我的游戏学习日志42——游戏机制设计(2)
    我的游戏学习日志41——游戏机制设计(1)
    我的游戏学习日志40——游戏概念设计(2)
    我的游戏学习日志39——游戏概念设计(1)
    我的游戏学习日志38——游戏性的评估标准(2)
    我的游戏学习日志37——游戏性的评估标准(1)
    我的游戏学习日志36——游戏结构(小结)
    我的游戏学习日志35——游戏结构(4)
  • 原文地址:https://www.cnblogs.com/yuphone/p/1998322.html
Copyright © 2020-2023  润新知