GDB快速入门

GDB(GNU DeBugger)是Linux下强大的C/C++调试器,纯命令行操作

启动

以下为测试代码

#include <stdio.h>

int nGlobalVar = 0;

int tempFunction(int a, int b)
{
printf("tempFunction is called, a = %d, b = %d\n", a, b);
return (a + b);
} int main()
{
int n;
n = 1;
n++;
n--; nGlobalVar += 100;
nGlobalVar -= 12; printf("n = %d, nGlobalVar = %d\n", n, nGlobalVar); n = tempFunction(1, 2);
printf("n = %d", n); return 0;
}

启动调试

$gcc -g hello.c -o hello #-g表示生成符号表和调试信息等
$gdb -q hello #-q表示禁止显示介绍信息和版权

常用指令

  • file hello:要装入调试的可执行文件
  • cd dir:改变工作目录
  • pwd:返回当前目录
  • run:执行正在被调试的程序
  • kill:停止当前正在调试的程序
  • list:列出正在调试的应用程序源码
  • break 行号:在某一行设置断点
  • tbreak:temporary breakpoints只运行一次的断点
  • watch var:监控变量
  • next:step over
  • step:step into
  • display var:每一次运行都会显示变量
  • undisplay varNum:删除display的变量
  • print expr:显示一次表达式的值
  • delete breakNum:删除指定断点,如果不加参数就删除所有
  • shell cmd:执行Linux shell命令
  • make:不退出gdb重新编译
  • quit:退出gdb
  • info breakpoints:查看断点
  • info func:显示所有函数名
  • info local:显示当前函数的所有局部变量
  • help:查看帮助
  • continue:进入下一个断点

其他当然还有很多细节,即用即查

GDB快速入门的更多相关文章

  1. linux gdb快速入门教程

    文章目录 前言 常用指令概览 开始使用gdb 一个完整流程一般所需步骤 1 加载程序 2 查看 2.1 查看函数 3 设置断点 3.1 根据函数名设置断点 3.2 根据程序位置(第几行) 4 运行程序 ...

  2. Modelbuilder快速入门

    Modelbuilder快速入门 by 李远祥 什么是modelbuilder 模型构建器是一个用来创建.编辑和管理模型的应用程序.模型是将一系列地理处理工具串联在一起的工作流,它将其中一个工具的输出 ...

  3. Emacs快速入门

    Emacs 快速入门 Emacs 启动: 直接打emacs, 如果有X-windows就会开视窗. 如果不想用X 的版本, 就用 emacs -nw (No windows)起动. 符号说明 C-X ...

  4. Qt快速入门学习笔记(基础篇)

    本文基于Qter开源社区论坛版主yafeilinux编写的<Qt快速入门系列教程目录>,网址:http://bbs.qter.org/forum.php?mod=viewthread&am ...

  5. NOI Linux 快速入门指南

    目录 关于安装 NOI Linux 系统配置 网络 输入法 编辑器 1. gedit 打开 配置 外观展示 2. vim 打开 配置 使用 makefile 编译运行 1. 编写 makefile 2 ...

  6. Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

  7. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  8. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  9. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

随机推荐

  1. 实现虚拟机VMware上Centos操作系统与主机windows之间互相复制与粘贴

    1.启动你的虚拟机,然后点击虚拟机,如下所示(未安装的话,显示的是安装VMware Tools): 2.点击安装Vmware tools以后显示如下所示: 3.VMwareTools-9.9.2-24 ...

  2. Windows Server 2012 R2 设置 NTP 服务

    其实和以前的server版本配置没啥不一样 都是先改注册表: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\ ...

  3. kickstart-E

    A题 简答模拟题 #include <iostream> #include<stdio.h> #include <set> #include <algorit ...

  4. tomcat调度配置

    调度可以基于nginx和http的调度 配置环境 1 安装tomcat 2 创建一个test测试页面 mkdir  /var/lib/tomcat/webapps/test/{WEB-INF,META ...

  5. zabbix http服务监控实例

    1在被监控主机安装http服务 ,监听80端口 systemctl start httpd.service       启动服务  80端口已经启动 设定,监控80端口,当服务不当时先自动重启服务 2 ...

  6. Codeforces 980E The Number Games 贪心 倍增表

    原文链接https://www.cnblogs.com/zhouzhendong/p/9074226.html 题目传送门 - Codeforces 980E 题意 $\rm Codeforces$ ...

  7. 001_ajax学习

    1,XMLHttpRequest 2,window.ActioveXObject(ie浏览器) 3,new ActiveXObject("Microsoft.XMLHTTP") 4 ...

  8. 最接近的三数之和(给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数, 使得它们的和与 target 最接近。返回这三个数的和)

    例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 思路:首先对数组进行排序     ...

  9. 062 SparkStream内部原理

    1.DStream 内部是一系列的RDD组成的,每个RDD与RDD的产生时间形成一个pair保存在内存中(下面有) RDD包含了对应时间段的所有block数据. 2.DStream下的方法 /** T ...

  10. win 10 slmgr.vbs -xpr 无法运行,被豆麦笔记打开解决方法

    win 10 slmgr.vbs -xpr 无法运行,被豆麦笔记打开解决方法 删除这个豆麦笔记 如果之前已经在 控制面板 程序中卸载过,那么是找不到的,我们先运行 slmgr.vbs -xpr,这个时 ...