gdb基本调试(cp:http://blog.csdn.net/feixiaoxing/article/details/7199643)
来源:互联网 发布:张艺兴发展前景知乎 编辑:程序博客网 时间:2024/05/22 15:19
编写代码过程中少不了调试。在windows下面,我们有visual studio工具。在linux下面呢,实际上除了gdb工具之外,你没有别的选择。那么,怎么用gdb进行调试呢?我们可以一步一步来试试看。 既然需要调试,那么生成的可执行文件就需要包含调试的信息,这里应该怎么做呢?很简单,输入 gcc test.c -g -o test。输入命令之后,如果没有编译和链接方面的错误,你就可以看到 可执行文件test了。
(15) 希望实时打印变量的数值,可以输入display + 变量名
(16) 查看函数的汇编代码,输入 disassemble + 函数名
- #include <stdio.h>
- int iterate(int value)
- {
- if(1 == value)
- return 1;
- return iterate(value - 1) + value;
- }
- int main()
- {
- printf("%d\n", iterate(10));
- return 1;
- }
调试的步骤基本如下所示,
(01) 首先,输入gdb test
(02) 进入到gdb的调试界面之后,输入list,即可看到test.c源文件
(03) 设置断点,输入 b main
(04) 启动test程序,输入run
(05) 程序在main开始的地方设置了断点,所以程序在printf处断住
(06) 这时候,可以单步跟踪。s单步可以进入到函数,而n单步则越过函数
(07) 如果希望从断点处继续运行程序,输入c
(08) 希望程序运行到函数结束,输入finish
(09) 查看断点信息,输入 info break
(10) 如果希望查看堆栈信息,输入bt
(11) 希望查看内存,输入 x/64xh + 内存地址
(12) 删除断点,则输入delete break + 断点序号
(13) 希望查看函数局部变量的数值,可以输入print + 变量名
(15) 希望实时打印变量的数值,可以输入display + 变量名
(16) 查看函数的汇编代码,输入 disassemble + 函数名
(17) 退出调试输入quit即可
(18)<重复上一次操作
(19)列出执行代码
0 0
- gdb基本调试(cp:http://blog.csdn.net/feixiaoxing/article/details/7199643)
- 快速排序 http://blog.csdn.net/feixiaoxing/article/details/6845132
- 合并排序(http://blog.csdn.net/feixiaoxing/article/details/6846008)
- http://blog.csdn.net/feixiaoxing/article/category/935718
- 用GDB调试程序 http://blog.csdn.net/dadalan/article/details/3758025
- 使用pdb/日志/gdb调试Python http://blog.csdn.net/atfield/article/details/1396735
- 大小端(cp:http://blog.csdn.net/libuding/article/details/5860578)
- 全局变量,static ,extern(cp:http://blog.csdn.net/it_youhun/article/details/8526147)
- htons,ntohs,htonl,ntohl(cp:http://blog.csdn.net/libuding/article/details/5860578)
- Java基本数据类型(转载自:http://blog.csdn.net/xmc281141947/article/details/54911355)
- http://blog.csdn.net/feixiaoxing 多线程 算法
- 用gdb 查看,执行汇编代码 http://blog.csdn.net/hejinjing_tom_com/article/details/26704487
- 使用Eclipse进行远程调试(原文http://blog.csdn.net/sunyujia/article/details/2614614)
- Git环境搭建与基本使用方法 (转自http://blog.csdn.net/fireelement/article/details/9618363)
- LTE物理层详解--- 基本介绍 http://blog.csdn.net/zzsfqiuyigui/article/details/7589251
- 【Linux】linux常用基本命令 http://blog.csdn.net/xiaoguaihai/article/details/8705992/
- windows宿主机,ubuntu虚拟机下的上网设置(有线网络和无线网络)(cp:http://blog.csdn.net/winson_jason/article/details/8969987)
- http://blog.csdn.net/IBM_hoojo/article/details/5688947
- 设计模式之-----观察者模式
- 引用变量
- 让代码带你飞:去第二个地球要飞多久
- 在项目中添加自定义字体。
- ArcGIS Runtime for Android开发教程V2.0(8)基础篇-----地图事件
- gdb基本调试(cp:http://blog.csdn.net/feixiaoxing/article/details/7199643)
- 字符串移位包含的问题
- Android中的三种XML解析方式的差异和比较
- 北漂两星期的感悟
- 内存管理之堆和栈的区别
- 在SharePoint 2010使用OWA
- poj解题报告——2386
- ArcGIS Runtime for Android开发教程V2.0(9)基础篇-----查询检索
- 单点登录之 Cas优化篇