gdb调试的补充说明

程序运行截图如下:

源码如下:

#include <stdio.h>void test(int i){if(i==0){return;}printf("The value is %d\n",i);test(--i);
}int main(){test(25);return 0;
}

当程序编译时带‐g选项时,程序才可以被调试实际上,当以‐g选项编译时,编译器将"调试信息"加在了目标程序里,因此,目标程序的体积将显著变大

比较输出的目标程序的体积:
g++ ‐g main.cpp ‐o helloworld
g++ main.cpp ‐o helloworld

体积如下所属:

判断一个程序是否带有“调试信息”

一:objdump ‐h helloworld

有debug信息就可以调试

第二种方法:
gdb  helloworld
如果调试信息,会提示:
Reading symbols from helloworld...(no debugging
symbols found)...done.

如下:

gdb的使用场合

适用的场合:
‐ 单元测试(较短的代码,功能单纯的函数)
‐ 段错误的定位
不太适用的场合:
‐ 大型程序,尤其是程序中使用了多线程
‐ 单步调试的时候问题无法复现,只能在正常运行的时候复现
(使用打印调试)

Linux学习笔记-gdb调试的补充说明相关推荐

  1. 【Linux学习】GDB调试器基本命令必知必会(一)

    本文介绍Linux下GDB调试器常用的基本命令. 测试均在Ubuntu12.10下完成. 先看看GDB调试的效果图: 对应的源代码: //插入排序,GDB调试测试代码 #include <std ...

  2. linux卸载gdb命令,【Linux学习】GDB调试器基本命令必知必会(一)

    本文介绍Linux下GDB调试器常用的基本命令. 测试均在Ubuntu12.10下完成. 先看看GDB调试的效果图: 对应的源代码: //插入排序,GDB调试测试代码 #include int x[1 ...

  3. linux学习笔记——gdb中的watch使用方法

    参考链接 参考链接二 先将程序跑起来:1.直接r后再watch 变量名.2.先在观察变量处设置断点,再r至断点处,再watch 变量名. c后程序会跑到变量改变时. 注:watch其实是设置观察断点, ...

  4. linux 串口信息记到日志,[linux学习笔记]之一:ubuntu ch340调试备忘

    [linux学习笔记]之一:ubuntu ch340调试备忘 已有 2183 次阅读2016-11-8 21:52 |个人分类:linux 最近迷上了Linux,入了一块板.电脑使用win7+ubun ...

  5. 20155303狄惟佳预备作业三Linux学习笔记

    20155303狄惟佳预备作业三Linux学习笔记 初次接触Ubuntu系统以及Linux内核,了解了其产生的历史,从感性来讲,深深吸引我的是其中蕴含的珍贵的开源精神,以及Stallman等人对&qu ...

  6. Linux学习笔记13

    Linux学习笔记13 Linux学习笔记13 配置Nagios 基本介绍 Nagios安装 - 服务端 Nagios安装 - 客户端 监控中心添加被监控主机 配置文件的简单说明 继续添加需要服务端通 ...

  7. linux学习笔记(6)磁盘管理

    linux学习笔记(6)磁盘管理 文章目录   6.1磁盘命名   6.2分区方式   6.3磁盘管理     6.3.1基本分区     6.3.2逻辑卷LVM     6.3.3交换分区管理Swa ...

  8. Linux学习笔记(3)- 网络编程以及范例程序

    Linux学习笔记(3)- 网络编程以及范例程序 前言 网络介绍 IP地址的介绍 端口和端口号的介绍 通信流程 socket介绍 TCP介绍 python3编码转换 TCP客户端程序开发流程 多任务版 ...

  9. 嵌入式linux学习笔记--TCP通讯整理

    嵌入式linux学习笔记–TCP通讯整理 之前的项目中使用到了比较多的tcp 通讯相关的知识,一直也没有进行整理,今天准备拿出时间好好的整理一下TCP通讯的整个过程.预计会整理linux和window ...

最新文章

  1. FPGA设计思想之“逻辑复制”
  2. NFS - MIPS架构下构建NFS共享目录服务
  3. dijkstra邻接表_掌握算法-图论-最短路径算法-Dijkstra算法
  4. migo获取header sap_Adjust Stock(MI06, MI07, MIGO)
  5. 两个充电宝能互充电吗_国人鬼才设计,手掌大智能芯片充电宝能暖手、充电、补光镜三合一...
  6. 和大家探讨一下“虚拟光驱”原理
  7. Java进阶 | Proxy动态代理机制详解
  8. PHPCMS 核心代码与 www 分离部署
  9. 你误解了Windows的文件后缀名吗?
  10. 色差(color diffference)在不同颜色空间下的计算方式
  11. OOP编程思想(面对对象编程)
  12. 南京师范大学地图学与地理信息系统专业《地理信息系统原理》研究生(硕士)期末试卷
  13. 复工第一天,马云给湖畔学员的3点建议和1篇荐文:把萧条看作再发展的飞跃台 | 充电...
  14. Zabbix5.0监控CenterOS(RPM版)
  15. 阿里EasyExcel对Excel复杂模版填充实现并设置单元格格式
  16. 我见过最NB的鼠标-鼠标放进PC卡插槽 惠普卡片蓝牙鼠试用
  17. python倒序输出字符串的6种方法
  18. dimission letter exmaple
  19. Java语言基础,面向对象
  20. 【课程总结】工程伦理学知识总结

热门文章

  1. 分享Silverlight/WPF/Windows Phone一周学习导读(11月14日-11月20日)
  2. 技术女性的是是非非(2)
  3. p2psearcher怎么用
  4. 用VC写Assembly代码
  5. 程序员看不起事业单位员工:一年收入才4万?网友:40岁再比一比,究竟谁更牛逼!!
  6. 因为我们还很穷,所以世界杯氛围差
  7. JavaScript 22岁生日快乐!
  8. 【福利】3980元的web前端视频教程限量领取!!!
  9. python保存rtmp流_ffmpeg 推送、保存rtmp 流命令
  10. linux generic什么意思_如何在 Ubuntu 中修复 VirtualBox 的 “rc=1908” 错误 | Linux 中国...