2.1GDB简介

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

  1. 启动被调试的程序。
  2. 让被调试的程序在指定的位置停住。
  3. 当程序被停住时,可以检测程序的状态(如变量值)。

#include<stdio.h>

void myprint(int res)

{

printf(“result = %d \n”,res);

}

void main()

{

Int i;

long result = 0;

for(i=1;i<=100;i++)

{

result+=1;

}

myprint(result) ;

}

2.2 GDB的使用流程

1.编译生成可执行文件

gcc -g tet.c -o tst

  1. 启动GDB

gdb tst

  1. 在main函数处设置断点

break main

  1. 运行程序

run

  1. 利用更加丰富的gdb命令对程序进行调试。

2.3 GDB命令

list(l) 查看程序

break(b) 函数名 在某函数入口处添加断点

break(b) 行号 在指定行添加断点

break(b) 文件名:行号 在指定文件的指定行添加断点

info break 查看所有设置的断点

delete 断点编号 删除断点

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

step(s) 单步运行程序(进入子函数)

continue(c) 继续运行程序

print(p) 变量名 查看指定变量值

set var=value 设置变量的值

quit(q) 退出gdb

转载于:https://www.cnblogs.com/free-1122/p/11341929.html

第三季-第2课-GDB程序调试相关推荐

  1. C# 编程入门第五课,VS2019程序调试,for循环,水仙花数,Console.Write,又一种类型变换,三元表达式,产生随机数

    C# 编程入门第五课 文章目录 C# 编程入门第五课 1. VS2019程序调试 2. for循环 3. 水仙花数 4. Console.Write() 5. 又一种类型变换 6. 三元表达式 7.产 ...

  2. Linux环境下gdb程序调试

    目录 gdb介绍 进入gdb调试环境 指令学习 l(list)指令 b(break)指令 info b指令 d指令 r(run)指令 n(next)指令 s(step)指令 c(continue)指令 ...

  3. GDB 程序调试简单实践

    用了好久的GCC/G++ 却一直都没用过GDB调试过程序,有时程序不是非常大,一般有错,直接看编译器编译结果就几乎相同知道错在哪儿了,或者使用codeblocks单步调试,甚至回到windows以下调 ...

  4. gdb 跟踪调试命令整理

    内容源自于陈浩CSDN博客的用GDB调试程序一系列文章 用GDB调试程序(一) 用GDB调试程序(二) 用GDB调试程序(三) 用GDB调试程序(四) 用GDB调试程序(五) 用GDB调试程序(六) ...

  5. Linux上程序调试的基石(2)--GDB

    3. GDB的实现  GDB是GNU发布的一个强大的程序调试工具,用以调试C/C++程序.可以使程序员在程序运行的时候观察程序在内存/寄存器中的使用情况.它的实现也是基于ptrace系统调用来完成的. ...

  6. IDA+GDB远程调试android平台 - Aarch64- elf64程序

    gdb配置 gdb和gdbserver gdbserver的是在 android-ndk-r10e\prebuilt\android-arm\gdbserver 这个目录下 gdb 是在 androi ...

  7. gdb的简单使用和gdb+gdbserver方式进行ARM程序调试

    gdb的简单使用 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB ...

  8. Linux下的程序调试——GDB

    无论是多么优秀的程序员,都难以保证自己在编写代码时不会出现任何错误,因此调试是软件开发过程中的一个必不可少的 组成部分.当程序完成编译之后,它很可能无法正常运行,或者会彻底崩溃,或者不能实现预期的功能 ...

  9. linux 远程调试文件夹,GDB远程调试开发板程序

    一.概述 可能我们都熟悉直接在发行版linux系统下调试系统,只需要在安装系统的时候包含了调试工具,直接可以根据gdb进行调试.但对于很多做嵌入式的来说,可能经常需要调试运行在开发板上的应用程序,下面 ...

  10. cgdb 调试_在MacOS上使用gdb(cgdb)调试Golang程序

    如果你在MacOS上使用GDB工具载入Golang程序时无法载入,这篇文章可以解决.本文不具体介绍调试的方法,网上的文章太多了就不赘述了. cgdb使用的是gdb的内核,方法和原理试用本文. 问题分析 ...

最新文章

  1. 超阿里、大华,澎思科技行人再识别(ReID)技术刷新三大数据集记录
  2. JavaScript调用Applet的函数
  3. “5W1H”带你来学习JavaScript
  4. xml方式实现aop-通知的种类
  5. st庞大股票股吧_黄金变石头!6倍大牛股提前锁定退市,市值蒸发98%,还有这些股票拉响警报(附名单)...
  6. Linux 监控命令 free
  7. 华为、中兴圈地IPTV金矿 中小企业南柯一梦
  8. 单例模式访问mysql设计类图_如何应用策略设计模式分离JDBC数据库连接中的外部环境信息...
  9. Android UI设计秘笈
  10. mingw-w64-i686-toolchain
  11. FL studio 20简易入门教程 -- 第三篇 -- 菜单栏讲解(下)
  12. 对InputStream,OutputStream,Reader,Writer的详解
  13. webrtc音频处理源码概述
  14. Python Opencv 简单视频裁剪功能的实现
  15. 流批OLAP一体的flink引擎
  16. java基本类型的小把戏
  17. 编辑PDF【没有PDF编辑器的会员时,且无破解软件】
  18. nginx、php-fpm以及mysql运行在各个用户下的配置
  19. 美国全国就业普遍低迷“技术”就业却加速增长;爱立信发布2030年10大消费者趋势 | 美通社头条...
  20. 淘宝开放平台开发指南之熟悉API族

热门文章

  1. 算法笔记-------基数排序
  2. 基于Lua语言的wireshark插件编写
  3. java getreturntype_java.lang.reflect.Method.getGenericReturnType()方法示例
  4. Apache Flink 进阶(二):时间属性深度解析
  5. android-gradle-plugin3.0.1源码分析
  6. FFmpeg总结(十三)用ffmpeg基于nginx实现直播功能,推流拉流
  7. OpenGL ES总结(二)OpenGL坐标变换之平移及旋转
  8. Java基础---Java---基础加强---内省的简单运用、注解的定义与反射调用、 自定义注解及其应用、泛型及泛型的高级应用、泛型集合的综合
  9. android可以root的版本,Android8.0以上系统ROOT时,Magisk框架替代SpuerSU
  10. 耳机使用说明书 jbl ua_怎么挑选一款适合自己的蓝牙耳机?看看这篇文章!