Linux学习笔记-gdb调试的补充说明
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调试的补充说明相关推荐
- 【Linux学习】GDB调试器基本命令必知必会(一)
本文介绍Linux下GDB调试器常用的基本命令. 测试均在Ubuntu12.10下完成. 先看看GDB调试的效果图: 对应的源代码: //插入排序,GDB调试测试代码 #include <std ...
- linux卸载gdb命令,【Linux学习】GDB调试器基本命令必知必会(一)
本文介绍Linux下GDB调试器常用的基本命令. 测试均在Ubuntu12.10下完成. 先看看GDB调试的效果图: 对应的源代码: //插入排序,GDB调试测试代码 #include int x[1 ...
- linux学习笔记——gdb中的watch使用方法
参考链接 参考链接二 先将程序跑起来:1.直接r后再watch 变量名.2.先在观察变量处设置断点,再r至断点处,再watch 变量名. c后程序会跑到变量改变时. 注:watch其实是设置观察断点, ...
- linux 串口信息记到日志,[linux学习笔记]之一:ubuntu ch340调试备忘
[linux学习笔记]之一:ubuntu ch340调试备忘 已有 2183 次阅读2016-11-8 21:52 |个人分类:linux 最近迷上了Linux,入了一块板.电脑使用win7+ubun ...
- 20155303狄惟佳预备作业三Linux学习笔记
20155303狄惟佳预备作业三Linux学习笔记 初次接触Ubuntu系统以及Linux内核,了解了其产生的历史,从感性来讲,深深吸引我的是其中蕴含的珍贵的开源精神,以及Stallman等人对&qu ...
- Linux学习笔记13
Linux学习笔记13 Linux学习笔记13 配置Nagios 基本介绍 Nagios安装 - 服务端 Nagios安装 - 客户端 监控中心添加被监控主机 配置文件的简单说明 继续添加需要服务端通 ...
- linux学习笔记(6)磁盘管理
linux学习笔记(6)磁盘管理 文章目录 6.1磁盘命名 6.2分区方式 6.3磁盘管理 6.3.1基本分区 6.3.2逻辑卷LVM 6.3.3交换分区管理Swa ...
- Linux学习笔记(3)- 网络编程以及范例程序
Linux学习笔记(3)- 网络编程以及范例程序 前言 网络介绍 IP地址的介绍 端口和端口号的介绍 通信流程 socket介绍 TCP介绍 python3编码转换 TCP客户端程序开发流程 多任务版 ...
- 嵌入式linux学习笔记--TCP通讯整理
嵌入式linux学习笔记–TCP通讯整理 之前的项目中使用到了比较多的tcp 通讯相关的知识,一直也没有进行整理,今天准备拿出时间好好的整理一下TCP通讯的整个过程.预计会整理linux和window ...
最新文章
- FPGA设计思想之“逻辑复制”
- NFS - MIPS架构下构建NFS共享目录服务
- dijkstra邻接表_掌握算法-图论-最短路径算法-Dijkstra算法
- migo获取header sap_Adjust Stock(MI06, MI07, MIGO)
- 两个充电宝能互充电吗_国人鬼才设计,手掌大智能芯片充电宝能暖手、充电、补光镜三合一...
- 和大家探讨一下“虚拟光驱”原理
- Java进阶 | Proxy动态代理机制详解
- PHPCMS 核心代码与 www 分离部署
- 你误解了Windows的文件后缀名吗?
- 色差(color diffference)在不同颜色空间下的计算方式
- OOP编程思想(面对对象编程)
- 南京师范大学地图学与地理信息系统专业《地理信息系统原理》研究生(硕士)期末试卷
- 复工第一天,马云给湖畔学员的3点建议和1篇荐文:把萧条看作再发展的飞跃台 | 充电...
- Zabbix5.0监控CenterOS(RPM版)
- 阿里EasyExcel对Excel复杂模版填充实现并设置单元格格式
- 我见过最NB的鼠标-鼠标放进PC卡插槽 惠普卡片蓝牙鼠试用
- python倒序输出字符串的6种方法
- dimission letter exmaple
- Java语言基础,面向对象
- 【课程总结】工程伦理学知识总结
热门文章
- 分享Silverlight/WPF/Windows Phone一周学习导读(11月14日-11月20日)
- 技术女性的是是非非(2)
- p2psearcher怎么用
- 用VC写Assembly代码
- 程序员看不起事业单位员工:一年收入才4万?网友:40岁再比一比,究竟谁更牛逼!!
- 因为我们还很穷,所以世界杯氛围差
- JavaScript 22岁生日快乐!
- 【福利】3980元的web前端视频教程限量领取!!!
- python保存rtmp流_ffmpeg 推送、保存rtmp 流命令
- linux generic什么意思_如何在 Ubuntu 中修复 VirtualBox 的 “rc=1908” 错误 | Linux 中国...