1.GDB是什么?

想必很多人都用过windows下各种编译器软件的调试功能,例如Visio Studio里面“断点”、“开始调试”、“逐语句”、“逐过程”



这些功能在其他的编译器软件里名字可能不同,但功能都大同小异,都是为了能够跟踪程序的执行过程,从而监视程序中感兴趣的变量值等。但是在Linux系统下进行软件开发时,往往是在终端命令行模式下进行的,因此如何在命令行模式下进行程序的调试就是一个问题。此时,GDB闪耀登场。

GDB全称GNU Debugger,GNU调试器,是GNU开源组织发布的一个强大的UNIX下的程序调试工具。GDB是通过一些命令实现“断点”、“开始调试”等功能。

2. 常见功能与命令如下:

命令 功能
l list,从第一行开始例出原码。
空格 命令同上一句
break 设置断点,break 10表示在第10行设置断点,break func表示在函数func()入口处打断点
r run,运行程序
n next,单条语句执行
c continue,继续运行程序到下一个断点处
p print,p var 表示打印var的值
bt 查看函数堆栈
finish 退出当前函数
q quit,退出GDB

3.举例

3.1 测试用程序

#include <iostream>
#include <string> int calSum(int num) {
int sum = 0, j;
for(j = 1; j < num; j++) {
sum += j;
}
return sum;
} int main(void) {
int i;
long result = 1;
for(i = 1; i <= 10; i++) {
result *= i;
}
std::cout<<"10的阶乘等于" + std::to_string(result) << std::endl;
std::cout<<"1到10的和等于" + std::to_string(calSum(10)) << std::endl;
}

3.2 使用截图



4.参考:

左耳朵耗子陈皓大神的:用GDB调试程序

最新文章

  1. CorelDRAW各版本安装软件下载
  2. CSS后代选择器可能的错误认识
  3. Guava并发:ListenableFuture与RateLimiter示例
  4. in addition to 和 except for
  5. Ribbon_窗体_实现Ribbon风格的窗体
  6. html 绘图渐变和图片填充
  7. AMQ学习笔记 - 13. Spring-jms的配置
  8. 编程范式感想(一)——在C中进行对模板功能的实现
  9. Chapter 3. Installing Gradle 安装gradle
  10. JPDA 利用Eclipse和Tomcat进行远程调试 --转
  11. 使用 Redis 统计在线用户人数
  12. 【续】5年后,我们为什么要从 Entity Framework 转到 Dapper 工具?
  13. mssql sqlserver 禁止删除数据表中指定行数据(转自:http://www.maomao365.com/?p=5323)
  14. POJ 3368
  15. OSINT系列:威胁信息挖掘ThreatMiner
  16. [C#]反射遍历对象属性
  17. c++的路上,我坚信,我可以 -----第四次作业体会
  18. mybatis-3 Dynamic SQL
  19. SQL Server 2008R2 附件数据库问题记录
  20. Mezzanine汉化

热门文章

  1. String常用方法解析
  2. java-設計模式概述
  3. 面试问题之C++语言:如何避免内存泄漏?
  4. Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?
  5. 线程池提交任务的两种方式:execute与submit的区别
  6. 学习Apache(一)
  7. UP9616移动电源快充案例
  8. 安卓性能优化之计算apk启动时间
  9. 浅谈Web前后端分离的意义
  10. caioj 1002: [视频]实数运算2[水题]