gdb调试c、cpp源代码方法步骤
1. 代码举例
//example.c
#include <stdio.h>
int addNumbers(int num1, int num2) {
return num1 + num2;
}
int main() {
int a = 10;
int b = 20;
int sum = addNumbers(a, b);
printf("The sum is: %d\n", sum);
return 0;
}
2. 代码编译带上-g
gcc -g -Wall -o example example.c
gdb example
3. gdb运行example可执行文件,如果有参数也不用带上,后面的run的时候再带参数
gdb example //会进入(gdb)交互页面
4. (gdb)交互页面调试源代码
查询断点:(gdb) b //输入break或者b,表示查询断点
设置断点:(gdb) break 1 //在源代码第1行设置断点,或者简写 b 1
启动程序:(gdb) run //或简写为 r 开始运行,如果有参数 r 后面继续添加参数,多个参数之间空格隔开
单步执行:(gdb) step (进入函数内部) //简写 s
下步执行:(gdb) next (不进入函数内部) //简写 n
查看变量值:(gdb) print variable_name //简写为 (gdb) p variable_name。
继续执行直到下一个断点:(gdb) continue //简写为 (gdb) c
退出GDB:(gdb) quit //简写为 (gdb) q
参考文章:https://blog.csdn.net/alwaysrun/article/details/107721231
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2020-07-16 adnroid gradle4.0以后关于arm64-v8a和armeabi-v7a的兼容性处理问题