linux应用程序设计--GDB调试
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调试的更多相关文章
- 【转】 linux编程之GDB调试
GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能: 1 在程序中设置断点,当程序运行到断点处暂停 2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显 ...
- linux学习之四---gdb调试
在Linux应用程序开发中,最经常使用的调试器是gdb. 一.启动和退出gdb gdb调试的对象是可运行文件,而不是程序的源码.假设要使一个可运行文件能够被gdb调试,那么使用编译器gcc编译时须要增 ...
- linux编程之GDB调试
GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能: 1 在程序中设置断点,当程序运行到断点处暂停 2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显 ...
- Linux下用gdb 调试、查看代码堆栈
Linux中用gdb 查看代码堆栈的信息 core dump 一般是在segmentation fault(段错误)的情况下产生的文件,需要通过ulimit来设置才会得到的. 调试的话输入: gd ...
- linux基础2——gdb调试器
gdb调试器使用的一般步骤(不断更新完善): 1.编译过程中要用-g参数来添加调试符号——gcc test.c -g: 2.gdb启动可执行文件——gdb a.out: 3.出现gdb符号表示启动成功 ...
- NOI Linux下Emacs && gdb调试方法
1. 首先要配置emacs文件: (global-linum-mode t) (show-paren-mode t) (global-set-key (kbd "C-s") 'sa ...
- Linux系统下GDB调试
GDB 一.gdb常用命令: 命令 描述 backtrace(或bt) 查看各级函数调用及参数 finish 连续运行到当前函数返回为止,然后停下来等待命令 frame(或f) 帧编号 选择栈帧 in ...
- Linux基础(03)gdb调试
1. 安装GDB增强工具 (gef) * GDB的版本大于7.7 * wget -q -O- https://github.com/hugsy/gef/raw/master/scripts/gef.s ...
- LINUX下的gdb调试方法
首先对目标文件进行编译 例如: gcc test.c -o test 这时会生成一个文件test,然后我们就可以对test进行调试了 示例: gdb test 好了以后是设定断点 示例: break ...
随机推荐
- Win8Metro(C#)数字图像处理--2.34直方图规定化
原文:Win8Metro(C#)数字图像处理--2.34直方图规定化 [函数名称] WriteableBitmap HistogramSpecificateProcess(WriteableBi ...
- win10 uwp 萤火虫效果
原文:win10 uwp 萤火虫效果 本文在Nukepayload2指导下,使用他的思想用C#写出来. 本文告诉大家,如何使用 win2d 做出萤火虫效果. 安装 win2d 安装win2d的方法请使 ...
- C#破解access数据库密码方法
原文:C#破解access数据库密码方法 using System; using System.Collections.Generic; using System.IO; using System.L ...
- 企业级架构 MVVM 模式指南 (WPF 和 Silverlight 实现) 译(3)
第一章 表现模式关注分离(soc)是企业及软件开发中非常有用的核心原则,也是许多表现模式背后的驱动力量.在WPF和Silverlight开发中,MVVM成为了实现关注分离最为有效的设计模式.然而,这种 ...
- C#函数参数前的修饰符
函数的形参前可以带三种修饰符,分别的out.ref.param. out:让函数可以输出“多个值”,并不是真正的输出多个值. ref:相当于引用传递,在函数内部赋值会影响变量的值. params:可变 ...
- UWP 发送短信公用倒计时按钮
1.要求: 发送验证码按钮,点击后,会倒计时60s,之后才能再次点击.不同界面的多个验证码按钮共享这个倒计时时间. 2.操作步骤 1) 从登录界面-->忘记密码输入手机号- ...
- ASP.NET MVC视图
前言 视图即是用户与Web应用程序的接口,用户通常会看到视图,然后在视图上进行交互,Web应用程序的视图通常是HTML格式. 首先了解控制器选择返回哪个视图的问题.新建一个项目,浏览到/Home/Ab ...
- Qt加载百度离线地图
1.下载百度地图离线API 1.3 下载链接:http://download.csdn.NET/detail/caoshangpa/9476608,网上虽然出现了2.0版本离线API,但是经试用,存在 ...
- Codility---Brackets
Task description A string S consisting of N characters is considered to be properly nestedif any of ...
- pip升级到18.0版本过程中报错解决方法
我这台电脑是windows10系统,一般在cmd命令行界面下执行pip的升级命令:pip install –upgrade pip 安装的时候,会有拒绝访问报错:这个时候应该是权限的问题,于是在win ...