gdb 亦凉 2023-06-18 12:57 3阅读 0赞 <table> <thead> <tr> <th align="left">命令</th> <th align="left">解释</th> <th align="left">示例</th> </tr> </thead> <tbody> <tr> <td align="left">file <文件名></td> <td align="left">加载被调试的可执行程序文件。因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。</td> <td align="left">(gdb) file gdb-sample</td> </tr> <tr> <td align="left">r</td> <td align="left">Run的简写,运行被调试的程序。如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。</td> <td align="left">(gdb) r</td> </tr> <tr> <td align="left">c</td> <td align="left">Continue的简写,继续执行被调试程序,直至下一个断点或程序结束。</td> <td align="left">(gdb) c</td> </tr> <tr> <td align="left">b <行号> b <函数名称> b *<函数名称>b *<代码地址> d [编号]</td> <td align="left">b: Breakpoint的简写,设置断点.两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。其中在函数名称前面加“*”符号表示将断点设置在“由编译器生成的prolog代码处”。如果不了解汇编,可以不予理会此用法。</td> <td align="left">d: Delete breakpoint的简写,删除指定编号的某个断点,或删除所有断点。断点编号从1开始递增。 (gdb) b 8(gdb) b main(gdb) b *main(gdb) b *0x804835c (gdb) d</td> </tr> <tr> <td align="left">s, n</td> <td align="left">s: 执行一行源程序代码,如果此行代码中有函数调用,则进入该函数;n: 执行一行源程序代码,此行代码中的函数调用也一并执行。 s 相当于其它调试器中的“Step Into (单步跟踪进入)”;n 相当于其它调试器中的“Step Over (单步跟踪)”。 这两个命令必须在有源代码调试信息的情况下才可以使用(GCC编译时使用“-g”参数)。</td> <td align="left">(gdb) s(gdb) n</td> </tr> <tr> <td align="left">si, ni</td> <td align="left">si命令类似于s命令,ni命令类似于n命令。所不同的是,这两个命令(si/ni)所针对的是汇编指令,而s/n针对的是源代码。</td> <td align="left">(gdb) si(gdb) ni</td> </tr> <tr> <td align="left">p <变量名称></td> <td align="left">Print的简写,显示指定变量(临时变量或全局变量)的值。</td> <td align="left">(gdb) p i(gdb) p nGlobalVar</td> </tr> <tr> <td align="left">display … undisplay <编号></td> <td align="left">display,设置程序中断后欲显示的数据及其格式。例如,如果希望每次程序中断后可以看到即将被执行的下一条汇编指令,可以使用命令“display /i $pc”其中 $pc 代表当前汇编指令,/i 表示以十六进行显示。当需要关心汇编代码时,此命令相当有用。 undispaly,取消先前的display设置,编号从1开始递增。</td> <td align="left">(gdb) display /i $pc (gdb) undisplay 1</td> </tr> <tr> <td align="left">i</td> <td align="left">info的简写,用于显示各类信息,详情请查阅“help i”。</td> <td align="left">(gdb) i r</td> </tr> <tr> <td align="left">q</td> <td align="left">Quit的简写,退出GDB调试环境。</td> <td align="left">(gdb) q</td> </tr> <tr> <td align="left">help [命令名称]</td> <td align="left">GDB帮助命令,提供对GDB名种命令的解释说明。如果指定了“命令名称”参数,则显示该命令的详细说明;如果没有指定参数,则分类显示所有GDB命令,供用户进一步浏览和查询。</td> <td align="left">(gdb) help</td> </tr> </tbody> </table>
相关 gdb `backtrace(简写为bt`命令查看函数调用的栈帧: `nfo(简写为i)`查看函数中局部变量的值: i locals 查看函数当前局部变量的值用`frame(简写为 向右看齐/ 2023年08月17日 17:37/ 0 赞/ 115 阅读
相关 gdb <table> <thead> <tr> <th align="left">命令</th> <th align="left">解释</th> 亦凉/ 2023年06月18日 12:57/ 0 赞/ 4 阅读
相关 gdb命令 g++ 简单编译指令 > g++ -g -std=c++11 main.cpp -o main.out > gdb main.out 常用的指令如下: 指令中 清疚/ 2022年11月12日 04:12/ 0 赞/ 253 阅读
相关 gdb 本文介绍Linux下GDB调试器常用的基本命令。 测试均在Ubuntu12.10下完成。 先看看GDB调试的效果图: ![20130522144628921][] 素颜马尾好姑娘i/ 2022年08月10日 03:43/ 0 赞/ 508 阅读
相关 gdb 调试 基本用法 1. gcc -g xx.c xx 2. gdb xx 基本命令 1. start 启动程序, 默认停留在main程序的第一行 2. run 启 刺骨的言语ヽ痛彻心扉/ 2022年06月09日 11:26/ 0 赞/ 369 阅读
相关 GDB gdb调试命令的使用及总结 作者: 字体:\[增加 减小\] 类型:转载 时间:2013-05-04[ 我要评论][Link 1] gdb是一个在UNIX环境下的命令行 分手后的思念是犯贱/ 2022年06月07日 06:29/ 0 赞/ 226 阅读
相关 gdb调试 在用gcc编程的时候可能会出bug,这时候就可以通过gdb这个工具进行调试,gdb调试的一定是直接有\.c 文件生成的bebug版本的可执行文件,否则,进入gdb之后敲入lis Dear 丶/ 2022年06月02日 07:55/ 0 赞/ 420 阅读
相关 GDB使用 参考出处: https://www.ibm.com/developerworks/cn/linux/sdk/gdb/index.html 摘要 gdb 目标文件 run 迈不过友情╰/ 2022年05月26日 05:19/ 0 赞/ 284 阅读
相关 interpret of gdb "gdb info reg" (gdb) info reg eax 0x0 0 ecx 0x0 0 edx 0xff 我就是我/ 2022年05月26日 04:24/ 0 赞/ 229 阅读
相关 GDB调试 另外有: Gdb+core调试技术 http://zhwen.org/xlog/?p=453 一、gdb简介和安装 GDB是GNU开源组织发 谁践踏了优雅/ 2022年01月22日 04:29/ 0 赞/ 418 阅读
还没有评论,来说两句吧...