第三季-第2课-GDB程序调试
2.1GDB简介
l GDB是GNU发布的一款功能强大的程序调试工具。GDB主要完成下面三个方面的功能:
- 启动被调试的程序。
- 让被调试的程序在指定的位置停住。
- 当程序被停住时,可以检测程序的状态(如变量值)。
#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
- 启动GDB
gdb tst
- 在main函数处设置断点
break main
- 运行程序
run
- 利用更加丰富的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程序调试相关推荐
- C# 编程入门第五课,VS2019程序调试,for循环,水仙花数,Console.Write,又一种类型变换,三元表达式,产生随机数
C# 编程入门第五课 文章目录 C# 编程入门第五课 1. VS2019程序调试 2. for循环 3. 水仙花数 4. Console.Write() 5. 又一种类型变换 6. 三元表达式 7.产 ...
- Linux环境下gdb程序调试
目录 gdb介绍 进入gdb调试环境 指令学习 l(list)指令 b(break)指令 info b指令 d指令 r(run)指令 n(next)指令 s(step)指令 c(continue)指令 ...
- GDB 程序调试简单实践
用了好久的GCC/G++ 却一直都没用过GDB调试过程序,有时程序不是非常大,一般有错,直接看编译器编译结果就几乎相同知道错在哪儿了,或者使用codeblocks单步调试,甚至回到windows以下调 ...
- gdb 跟踪调试命令整理
内容源自于陈浩CSDN博客的用GDB调试程序一系列文章 用GDB调试程序(一) 用GDB调试程序(二) 用GDB调试程序(三) 用GDB调试程序(四) 用GDB调试程序(五) 用GDB调试程序(六) ...
- Linux上程序调试的基石(2)--GDB
3. GDB的实现 GDB是GNU发布的一个强大的程序调试工具,用以调试C/C++程序.可以使程序员在程序运行的时候观察程序在内存/寄存器中的使用情况.它的实现也是基于ptrace系统调用来完成的. ...
- IDA+GDB远程调试android平台 - Aarch64- elf64程序
gdb配置 gdb和gdbserver gdbserver的是在 android-ndk-r10e\prebuilt\android-arm\gdbserver 这个目录下 gdb 是在 androi ...
- gdb的简单使用和gdb+gdbserver方式进行ARM程序调试
gdb的简单使用 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB ...
- Linux下的程序调试——GDB
无论是多么优秀的程序员,都难以保证自己在编写代码时不会出现任何错误,因此调试是软件开发过程中的一个必不可少的 组成部分.当程序完成编译之后,它很可能无法正常运行,或者会彻底崩溃,或者不能实现预期的功能 ...
- linux 远程调试文件夹,GDB远程调试开发板程序
一.概述 可能我们都熟悉直接在发行版linux系统下调试系统,只需要在安装系统的时候包含了调试工具,直接可以根据gdb进行调试.但对于很多做嵌入式的来说,可能经常需要调试运行在开发板上的应用程序,下面 ...
- cgdb 调试_在MacOS上使用gdb(cgdb)调试Golang程序
如果你在MacOS上使用GDB工具载入Golang程序时无法载入,这篇文章可以解决.本文不具体介绍调试的方法,网上的文章太多了就不赘述了. cgdb使用的是gdb的内核,方法和原理试用本文. 问题分析 ...
最新文章
- 超阿里、大华,澎思科技行人再识别(ReID)技术刷新三大数据集记录
- JavaScript调用Applet的函数
- “5W1H”带你来学习JavaScript
- xml方式实现aop-通知的种类
- st庞大股票股吧_黄金变石头!6倍大牛股提前锁定退市,市值蒸发98%,还有这些股票拉响警报(附名单)...
- Linux 监控命令 free
- 华为、中兴圈地IPTV金矿 中小企业南柯一梦
- 单例模式访问mysql设计类图_如何应用策略设计模式分离JDBC数据库连接中的外部环境信息...
- Android UI设计秘笈
- mingw-w64-i686-toolchain
- FL studio 20简易入门教程 -- 第三篇 -- 菜单栏讲解(下)
- 对InputStream,OutputStream,Reader,Writer的详解
- webrtc音频处理源码概述
- Python Opencv 简单视频裁剪功能的实现
- 流批OLAP一体的flink引擎
- java基本类型的小把戏
- 编辑PDF【没有PDF编辑器的会员时,且无破解软件】
- nginx、php-fpm以及mysql运行在各个用户下的配置
- 美国全国就业普遍低迷“技术”就业却加速增长;爱立信发布2030年10大消费者趋势 | 美通社头条...
- 淘宝开放平台开发指南之熟悉API族
热门文章
- 算法笔记-------基数排序
- 基于Lua语言的wireshark插件编写
- java getreturntype_java.lang.reflect.Method.getGenericReturnType()方法示例
- Apache Flink 进阶(二):时间属性深度解析
- android-gradle-plugin3.0.1源码分析
- FFmpeg总结(十三)用ffmpeg基于nginx实现直播功能,推流拉流
- OpenGL ES总结(二)OpenGL坐标变换之平移及旋转
- Java基础---Java---基础加强---内省的简单运用、注解的定义与反射调用、 自定义注解及其应用、泛型及泛型的高级应用、泛型集合的综合
- android可以root的版本,Android8.0以上系统ROOT时,Magisk框架替代SpuerSU
- 耳机使用说明书 jbl ua_怎么挑选一款适合自己的蓝牙耳机?看看这篇文章!