zoukankan      html  css  js  c++  java
  • GDB 的使用

    gdb使用:

    1.编译时必须加-g选项,生成调试需要的信息。如 g++    xxx.cpp   -o   xxx    -g

    2.调试最好结合core文件

    3.调试命令:gdb   xxx    xxx.core

    4.查看堆栈信息:bt

    5.查看某条堆栈信息:例如最新的:info  0;然后up命令可以向上查看上一条,down可以查看下一条

    6.打断点:b  xxx.cpp:999    在 xxx.cpp:999的999行打断点, info b可以查看下断点的位置。打断点还有各种方法可百度

    7.gdb下运行程序:run

    8.运行到断点处程序停下:c继续执行到下一断点,n执行一行代码,s进入调用函数,p打印需要的变量信息(如p  a:打印a变量)

    9. list  列出带有行号的源码, 一般指列出一部分, 可以按enter键重复上一个命令, 继续列出。每次list默认显示10行, 当然, 也可以人为更改这个设置。

         list 60表示列出第60行左右的代码, 即可能是55-65之间。

         list + 显示当前行后, list -显示当前行前

         list 55, 65 显示之间的行数

         list fun 列出fun函数代码

         list可以缩写为l

    10. list太死板, 可以用search实现搜索, 如search int main   , 可以按enter键继续往下找。search 太固执, 只能朝一个方向找。

        可以用reverse-search逆向找, 如reverse-search printf

        search和reverse-search支持正则表达式。

    11. watch i  监测i, 一旦i的值发生变化, 则停下来, 跟断点有点类似。

         rwatch监测读, awatch监测读写(access)

         info watchpoints 列举所偶监视点

    12. set var i = 100    临时强制更改i的值

    13. clear 10 表示删除第10行的断点, delete 2表示删除第2行的断点

    14. 当进入一个函数后, 可以用return 100强行返回函数, 后面的语句不执行

    15. shell命令, 可以在gdb环境下执行shell中的命令, 如shell ls ,  很方便

    退出gdb调试:q

    参考 http://blog.csdn.net/liigo/archive/2006/01/17/582231.aspx

    参考https://blog.csdn.net/stpeace/article/details/38741835#comments

  • 相关阅读:
    计算小于12的阶乘
    ubuntu下gvim启动出现gtk warning Invalid input string
    UBUNTU基础知识
    Ubuntu下创建软链接
    linux命令行介绍及使用(二)
    Ubuntu问题sudo: /etc/sudoers is mode 0640should be 0440的解决方法
    安装mp3插件
    Ubuntu下GTK的安装
    linux命令行介绍及使用(三)
    VB.NET中用GDI+画饼图
  • 原文地址:https://www.cnblogs.com/nanqiang/p/8026522.html
Copyright © 2011-2022 走看看