linux下gdb调试
2021/7/30 7:37:53
本文主要是介绍linux下gdb调试,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
gdb是Linux操作系统下基于命令行的程序调试工具。
以C++为例,测试程序为test.cpp,通过makefile或者命令gcc生成可执行文件test:
//-g为了调试用的 ,加个-g 是为了gdb 用,不然gdb用不到 //-o output_filename,确定输出文件的名称为output_filename,不能和源文件同名 //-c 只编译不链接,生成目标文件而不是可执行文件 gcc -g test.cpp -o test
启动gdb:
gdb test//不打印gdb版本信息 gdb -q test//打印gdb版本信息
查看代码:l(list),默认显示10行,按回车键继续查看;
运行程序:r(run),运行程序直到结束或遇到断点
c(continue),继续执行程序,直到下一个断点或者结束
设置断点:b(break) xxx,在第xxx行设置断点
delete n:删除断点编号为n的断点
info breakpoints,显示断点信息
(gdb) info breakpoints //Num:断点编号 //Disp:断点执行一次之后是否有效 kep:有效 dis:无效 //Enb: 当前断点是否有效 y:有效 n:无效 //Address:内存地址 //What:位置 Num Type Disp Enb Address What 1 breakpoint keep y 0x00000000004030d0 in main(int, char**) at test.cpp:62
单步执行:n(next),单步执行程序,但是遇到函数时不进入函数
s(step),单步执行程序,但是遇到函数会进入函数
退出gdb:q(quit),退出gdb调试
查看运行信息:info program,来查看程序的是否在运行
bt,显示当前运行的堆栈列表
set args xxx,指定运行时的参数为xxx
show args:查看设置好的参数
多进程/多线程调试:attach pid,将PID为pid的进程附加到gdb调试器上(调试该进程)
info threads,显示当前可以调试的所有线程
thread id,调试ID为id的线程
参考链接 linux下gdb调试方法与技巧整理_niyaozuozuihao的博客-CSDN博客_gdb调试
这篇关于linux下gdb调试的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23linux 系统宝塔查看网站访问的命令是什么?-icode9专业技术文章分享
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南