GDB简介:GDB是GNU发布的一款功能强大的程序调试工具,GDB主要完成下面三个方面功能:

一、GDB的使用操作

  1.启动被调试程序。

  2.让被调试的程序在指定的位置停住。

  3.当程序被停住时,可以检查程序状态(如变量值)。

  GDB调试实例:

    1.在linux下编写test.c程序:

 #include <stdio.h>

 int main()
{
int i;
long result = ;
for(i=;i<;i++)
{
result += i;
}
printf("result = %d\n",result);
return ;
}

    2.编译生成可执行文件(-g 使程序具有调试信息):

    gcc -g test.c -o test

    3.启动GDB(进入GDB模式下):

    gdb test

    4.在main函数处设置断点:

    break main

    5.运行程序(运行到断点处):

    run

    6.单步运行:

    next

    7.继续运行(运行到下一个断点处):

    c

在linux环境下运行结果如图:

二、GDB常用命令

  1.启动GDB

    1.1.gdb name : 直接打开名为name的调试程序进行GDB调试

    1.2.gdb(进入gdb模式)-->file name(打开名为name的调试程序进行调试)

  2.list(l) : 查看程序,可以显示运行位置后面一段程序,可以根据代码进行断点的设置

  

  3.break(b) name : 在name函数路口处添加断点

  

  4.break(b) num : 在第num行添加断点

  

  5.break(b) filename : num : 在filename文件中的num行添加断点

  

  6.break(b) num if condition : 如果满足条件condition,则在第num行的位置设置断点

  7.info break : 查看程序中所有设置的断点

  

  8.delete num : 删除编号为num的断点

  

  9.run(r) : 开始运行程序

  10. next(n) : 单步运行程序(不进入子函数)

  11.step(s) : 逐步运行程序(进入子函数)

  12.continue(c) : 继续运行程序,到下一个断点

  13.print(p) variable : 查看变量variable的值

  

  14.finish : 运行程序,直到当前函数结束

  15.watch variable : 对变量variable进行监控

  16.quit(q) : 退出GDB模式

linux应用程序设计--GDB调试的更多相关文章

  1. 【转】 linux编程之GDB调试

    GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能: 1 在程序中设置断点,当程序运行到断点处暂停 2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显 ...

  2. linux学习之四---gdb调试

    在Linux应用程序开发中,最经常使用的调试器是gdb. 一.启动和退出gdb gdb调试的对象是可运行文件,而不是程序的源码.假设要使一个可运行文件能够被gdb调试,那么使用编译器gcc编译时须要增 ...

  3. linux编程之GDB调试

    GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能: 1 在程序中设置断点,当程序运行到断点处暂停 2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显 ...

  4. Linux下用gdb 调试、查看代码堆栈

      Linux中用gdb 查看代码堆栈的信息 core dump 一般是在segmentation fault(段错误)的情况下产生的文件,需要通过ulimit来设置才会得到的. 调试的话输入: gd ...

  5. linux基础2——gdb调试器

    gdb调试器使用的一般步骤(不断更新完善): 1.编译过程中要用-g参数来添加调试符号——gcc test.c -g: 2.gdb启动可执行文件——gdb a.out: 3.出现gdb符号表示启动成功 ...

  6. NOI Linux下Emacs && gdb调试方法

    1. 首先要配置emacs文件: (global-linum-mode t) (show-paren-mode t) (global-set-key (kbd "C-s") 'sa ...

  7. Linux系统下GDB调试

    GDB 一.gdb常用命令: 命令 描述 backtrace(或bt) 查看各级函数调用及参数 finish 连续运行到当前函数返回为止,然后停下来等待命令 frame(或f) 帧编号 选择栈帧 in ...

  8. Linux基础(03)gdb调试

    1. 安装GDB增强工具 (gef) * GDB的版本大于7.7 * wget -q -O- https://github.com/hugsy/gef/raw/master/scripts/gef.s ...

  9. LINUX下的gdb调试方法

    首先对目标文件进行编译 例如: gcc test.c -o test 这时会生成一个文件test,然后我们就可以对test进行调试了 示例: gdb test 好了以后是设定断点 示例: break ...

随机推荐

  1. 让用户使用第三方账号(如亚马逊账号)接入AWS IoT系统

    我们想象这么一个IoT应用场景:厂商A使用AWS IoT来开发物联网解决方案,那么A把设备卖给用户的时候,需要使用户能够登入AWS IoT系统来控制其购买的A的设备,也就是说给用户分配适当的权限.下面 ...

  2. 未在本地计算机上注册“microsoft.ACE.oledb.12.0” 解决方法

    今日写一个浏览Excel文件的代码,忽然发现提示如下错误,表示很惊讶,因为我的另外一台电脑不会,但是这台就包这个异常. 解决方法: 去http://download.microsoft.com/dow ...

  3. Windows Phone SplashScreen初始屏幕示例

    protected override void OnLaunched(LaunchActivatedEventArgs args) { if (args.PreviousExecutionState ...

  4. UWP中的消息提示框(一)

    不管什么平台,应用内难免会出现一些消息提示框,下面就来聊聊我在UWP里用到的消息提示框. 弹窗也可按是否需要用户操作促发一些逻辑进行分为两大类. 不需要用户干涉的一类: MessageDialog:操 ...

  5. Android零基础入门第88节:Fragment显示和隐藏、绑定和解绑

    在上一期我们学习了FragmentManager和FragmentTransaction的作用,并用案例学习了Fragment的添加.移除和替换,本期一起来学习Fragment显示和隐藏.绑定和解绑. ...

  6. Windows 7 频繁提示:计算机的内存不足

    最近由于同时打开的程序比较多,Windows 7 频繁提示:计算机的内存不足,如下图: 问题原因: 经过一番尝试,得出一个大概的结论:当虚拟内存空间的大小小于物理内存空间的大小时,一旦程序开的太多,物 ...

  7. Layui 是一款采用自身模块规范编写的国产前端UI框架(5600个Star)

    采用自身模块规范编写的前端UI框架,遵循原生HTML/CSS/JS的书写形式,极低门槛,拿来即用. http://www.layui.com Layui 是一款采用自身模块规范编写的国产前端UI框架, ...

  8. 在本地安装RabbitMQ Server教程以及可能遇到的问题及解决办法

    1. Download latest erlang OTP platform from : erlang:http://www.erlang.org/download.html (The latest ...

  9. 反向代理在APP通过无线路由接入3G/4G时的特殊作用

    由于某些需求,要临时搭建局域网络,给小范围内大量移动客户端提供特定的网络服务,这样的服务通常包含常见的HTTP服务.数据文件下载服务.RESTFul接口服务等.市面常见的非企业级WIFI路由器能够承受 ...

  10. spring boot 2.x 系列——spring-boot 集成 Swagger2 打造在线接口文档

    文章目录 一.Springfox 与 Swagger 简介 1.1 Springfox 1.2 Swagger 1.3 OpenApi.Swagger.Springfox的关系 二.spring bo ...