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-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南