编辑
2022-01-14
工具
00
请注意,本文编写于 1099 天前,最后修改于 579 天前,其中某些信息可能已经过时。

GNU Debugeer,开源的功能强大的调试器。

常用命令速记

1.单步执行 next: 执行下一行代码,并将控制权也移到下一行 step:执行下一行代码,如果当前是函数调用,则进入函数内部。 finish:执行完当前函数,并且停留在函数调用的下一行。 2.断点设置 break <line> : 指定在line行设置断点 break <function> : 指定的函数入入口处设置的断点。 delete <breakpoint number> : 删除指定的编号断点。(编号自动设置,第一个断点编号是1以此类推) disable <breakpiont number> : 禁用指定断点,但不删除。 disable : 禁用所有断点 enable <breakpoint number> : 启用指定断点 enable : 启用所有断点 info breakpoints : 显示所有断点信息,如编号,是否启用,在哪个文件哪一行 3.变量查看 print <variable> : 打印指定变量的值 display <variable> : 持续显示指定变量的值,每次断点都会显示 whatis <variable> : 显示指定变量的类型 4.函数调用跟踪 backtrace : 显示当前函数调用栈的信息。 up 和 down 切换栈顶指针进入不通的函数,即当前函数调用的上下级函数 frame <num> : 切换到指定帧(函数调用栈中的某个层级) 5.内存查看和修改 x/<format> <address>:以指定格式查看指定地址的内存内容。 /*----------->*/ 单位的类型可以是 b(byte)、h(halfword,2 bytes)、w(word,4 bytes)或 g(giant,8 bytes)。 也可以指定显示格式,例如十六进制(x)、十进制(d)、字符(c)、字符串(s)等。例如,x/1wx 0x1234 会以十六进制的形式显示地址 0x1234 处的一个 word 大小的内存内容。 使用 x/1wd 命令来以十进制的形式查看这个地址的一个 word 大小的内存内容. /*----------->*/ set variable <variable> = <value> : 修改指定变量的值 6.异常处理 catch <exception> : 捕获指定的异常 throw : 手动抛出异常 7.多线程调试 info threads : 显示当前所有线程的信息 thread <num> : 切换到指定的线程。 thread apply <thread-group> <command> : 对指定线程租中每个线程执行命令。 8.远程调试 target remote <host:port> : 连接到远程调试目标

本文作者:phae

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!