zoukankan      html  css  js  c++  java
  • [备份]GDB调试工具常用命令

    一、前言

    ACM开赛在即,得知dev-cpp不适用之后,不得不再次重拾gdb基本操作。。。

    辗转Emacs和Code::blocks数次之后,感觉还是Emacs更适合我的风格,尽管配置稍显麻烦,但其开放性不是其他ide可比的。

    二、正文

    TIPS:对于任一命令,如果标有斜杠/,例如run/r,则前面表示全称,后面表示简写,两者均可以被执行,一般为了方便会选择简写。

    1、主体

      (gdb)help x:查看命令帮助(x可省表示查看全部,也可以是命令名称,表示查看某一具体命令的帮助);

      (gdb)run/r:开始运行文件;

      (gdb)list/l x:查看原代码(x可省表示查看全部,也可以是数字表示查看第x行,也可以为函数名称表示查看某一函数)

      (gdb)quit/q:退出gdb;

    2、断点

      (gdb)break/b x:设置断点(x可以为数字表示第x行,也可以为函数名称表示设置在该函数);

      (gdb)(delete breakpoints)/d x:删除第x个断点(x只能为柱子);

    3、运行

      (gdb)next/n:单步调试(逐过程,函数直接执行);

      (gdb)step/s:单步调试(逐语句:跳入自定义函数内部执行);

      (gdb)continue/c:继续运行;

      (gdb)finish:结束当前函数,返回到函数调用点;

    4、查看

      (gdb)print/p x:显示具体变量x的值(x只能为变量);

      (gdb)display/disp x:追踪查看具体变量x的值(x只能为变量);

      (gdb)undisplay/undisp x:取消追踪第x条变量(x只能为数字);

    5、其他(这些暂且用得少)

      (gdb)info/i x:查看各种数据(x可以为很多内容,比如breakpoints,表示查看当前设置的所有断点,详情可以输入"help info");

      (gdb)watch:被设置观察点的变量发生修改时,打印显示; 

      (gdb)enable breakpoints:启用断点;

      (gdb)disable breakpoints:禁用断点。

    这里仅仅列出了ACMer一般情况下会用到的命令,而且介绍得比较简单,想了解更多其他的高级命令或者更详细的使用方法可以自行在gdb下输入"help"。

  • 相关阅读:
    LeetCode Path Sum II
    LeetCode Longest Palindromic Substring
    LeetCode Populating Next Right Pointers in Each Node II
    LeetCode Best Time to Buy and Sell Stock III
    LeetCode Binary Tree Maximum Path Sum
    LeetCode Find Peak Element
    LeetCode Maximum Product Subarray
    LeetCode Intersection of Two Linked Lists
    一天一个设计模式(1)——工厂模式
    PHP迭代器 Iterator
  • 原文地址:https://www.cnblogs.com/jinkun113/p/9880259.html
Copyright © 2011-2022 走看看