一、前言

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"。

[持续更新][备份]GDB调试工具常用命令的更多相关文章

  1. gdb调试工具常用命令

    编译程序时需要加上-g,之后才能用gdb进行调试:gcc -g main.c -o main gdb中命令: 回车键:重复上一命令 (gdb)help:查看命令帮助,具体命令查询在gdb中输入help ...

  2. gdb调试工具常用命令 && kdb

    编译程序时需要加上-g,之后才能用gdb进行调试:gcc -g main.c -o main gdb中命令: 回车键:重复上一命令 (gdb)help:查看命令帮助,具体命令查询在gdb中输入help ...

  3. gdb调试常用命令

    gdb 调试常用命令 gcc -g mian.c -o main.out -o (定制生成的可执行文件的名称,缺省时为a.out) -g 使gdb可调试,在编译的时候,产生调试信息 gdb main. ...

  4. Bash,Vim,gdb&git常用命令

    Bash 目录 pwd  //查看当前目录 mkdir dir1 dir2  //创建目录 tree dir1 mv test1.cpp test2.cpp dir1 dir  //移动文件/目录到目 ...

  5. Linux下离线安装gdb及常用命令汇总

    以redhat6.5虚拟机作为例子,由于工作性质,大部分情况linux的软件安装,是采用离线方式的. 1.离线安装gdb 像gcc.g++或者gdb这种常用的工具软件,一般虚拟机都会安装的,如未安装, ...

  6. [svc]mysql备份恢复及常用命令

    如何实现mysql读写分离 1.通过程序实现读写分类(性能 效率最佳) php和java都可以通过设置多个连接文件轻松实现对db的读写分离,即当select时,就去连读库的连接文件,当update,i ...

  7. 【持续更新】GDB使用笔记

    多文件程序的调试,例子: 文件结构: /demo Makefile /src demo.cpp util.cpp /include util.h 截图: ----------------------- ...

  8. GDB的常用命令

    定断点b line.会返回一个断点号(breakpoint-no). 输出p val.可以夹杂类型装换.解引用. 遇到断点自动执行命令commands breakpoint-no. 停止执行s. 退出 ...

  9. vscode常用快捷键和插件(持续更新),以及一些常用设置的坑和技巧

    一 常用快捷键 ctrl+shift+p:  打开命令面板,最常用了 ctrl+p: 搜索窗口: 直接输入文件名,跳转到文件 > 可以进入 Ctrl+Shift+P 模式 ? 列出当前可执行的动 ...

随机推荐

  1. 拼多多商品id怎么查看 拼多多店铺ID怎样看

    网上开店平台有很多编号.id等可以区分商品和店铺的标志,拼多多有店铺id也有商品id,这是两个不同的概念,店铺id进入到拼多多店铺即可查询,拼多多商品id怎么查看 拼多多店铺ID怎样看,那么拼多多商品 ...

  2. 不相交集合ADT -数据结构(C语言实现)

    读数据结构与算法分析 不相交集合 等价关系 满足三个性质 - 自反性 - 对称性 - 传递性 基本数据结构 基本思路 使用一个数组,下标表示该集合,内容表示指向的父亲 实现 类型声明 typedef ...

  3. SST:Single-Stream Temporal Action Proposals论文笔记

    SST:Single-Stream Temporal Action Proposals 这是本仙女认认真真读完且把算法全部读懂(其实也不是非常懂)的第一篇论文 CVPR2017 一作 论文写作的动机m ...

  4. MySQL Proxy和 Amoeba 工作机制浅析

    MySQL Proxy处于客户端应用程序和MySQL服务器之间,通过截断.改变并转发客户端和后端数据库之间的通信来实现其功能,这和WinGate 之类的网络代理服务器的基本思想是一样的.代理服务器是和 ...

  5. 微信小程序-----自定义验证码实现

    这一段时间做小程序项目,使用的是mpvue的框架,需要自己实现验证码输入,模拟input的光标,上一个框输入后后一个框自动获取焦点,删除时从后往前依次删除.下图是整体效果: <template& ...

  6. mysql优化建议21条

    转自: http://blog.csdn.net/waferleo/article/details/7179009 今 天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于 ...

  7. [C++] Solve "Cannot run program "gdb": Unknown reason" error

    In Mac OSX, The Issue Image: 1. Build the project on Eclipse successfully. 2. Run gdb on command lin ...

  8. 20181113-7 Beta阶段第1周/共2周 Scrum立会报告+燃尽图 04

    作业要求:[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2386] 版本控制:[https://git.coding.net/lglr2 ...

  9. 03慕课网《vue.js2.5入门》——Vue-cli的安装,创建webpack模板项目

    安装Vue-cli 第一种 貌似不可以,然后用了第二种,但是重装系统后,第二种不能用了,用了第一种可以 # 全局安装vue -cli命令npm install --global vue-cli # 创 ...

  10. “来用”Beta版使用说明

    补发Beta版使用说明.Beta版与alpha版相比去掉了计算器,界面上没有太大变化. 1引言 1 .1编写目的 针对我们发布的Beta版本做出安装和使用说明,使参与内测的人员及用户了解软件的使用方法 ...