GDB调试入门教程适合初学者吗?
- 内容介绍
- 文章标签
- 相关推荐
本文共计542个文字,预计阅读时间需要3分钟。
1. GDB 是什么?GDB 是一款功能强大的调试器,广泛应用于各种编程语言和平台,尤其在 Linux 系统下。它提供了诸如断点、开始调试、逐句执行、单步调试等功能,帮助开发者快速定位和修复代码中的错误。与其他编译器软件相比,GDB 的功能可能更为全面。
1.GDB是什么?想必很多人都用过windows下各种编译器软件的调试功能,例如Visio Studio里面“断点”、“开始调试”、“逐语句”、“逐过程”
这些功能在其他的编译器软件里名字可能不同,但功能都大同小异,都是为了能够跟踪程序的执行过程,从而监视程序中感兴趣的变量值等。但是在Linux系统下进行软件开发时,往往是在终端命令行模式下进行的,因此如何在命令行模式下进行程序的调试就是一个问题。此时,GDB闪耀登场。
GDB全称GNU Debugger,GNU调试器,是GNU开源组织发布的一个强大的UNIX下的程序调试工具。GDB是通过一些命令实现“断点”、“开始调试”等功能。
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 使用截图
左耳朵耗子陈皓大神的:用GDB调试程序
本文共计542个文字,预计阅读时间需要3分钟。
1. GDB 是什么?GDB 是一款功能强大的调试器,广泛应用于各种编程语言和平台,尤其在 Linux 系统下。它提供了诸如断点、开始调试、逐句执行、单步调试等功能,帮助开发者快速定位和修复代码中的错误。与其他编译器软件相比,GDB 的功能可能更为全面。
1.GDB是什么?想必很多人都用过windows下各种编译器软件的调试功能,例如Visio Studio里面“断点”、“开始调试”、“逐语句”、“逐过程”
这些功能在其他的编译器软件里名字可能不同,但功能都大同小异,都是为了能够跟踪程序的执行过程,从而监视程序中感兴趣的变量值等。但是在Linux系统下进行软件开发时,往往是在终端命令行模式下进行的,因此如何在命令行模式下进行程序的调试就是一个问题。此时,GDB闪耀登场。
GDB全称GNU Debugger,GNU调试器,是GNU开源组织发布的一个强大的UNIX下的程序调试工具。GDB是通过一些命令实现“断点”、“开始调试”等功能。
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 使用截图
左耳朵耗子陈皓大神的:用GDB调试程序

