gdb中常用的调试命令有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2081个文字,预计阅读时间需要9分钟。
查看堆栈信息,无论是操作转储文件还是使用GDB设置断点进行调试,都可以通过输入命令来实现。例如,输入(gdb)bt命令可以打印堆栈内容进行查看。通常的栈溢出BUG,通过查看崩溃时的位置和源代码,基本就可以定位并解决问题。
基本信息查看 栈信息不管是操作转储文件还是用GDB设置断点进行调试,都可以输入 (gdb)bt 打印栈内容进行查看。一般的宕机BUG,看下宕机的位置,然后看下源代码基本就可以解决了。但是很多情况下简单的 (gdb)bt 还查不到问题,这时候就要涉及到比较复杂的操作。下面罗列了一些对栈的操作:
(gdb) bt:显示所有栈帧(gdb) bt 10:显示前面10个栈帧(gdb) bt -10:显示后面10个栈帧(gdb) bt full:显示栈帧以及局部变量(gdb) bt full 10:显示前面10个栈帧以及局部变量(gdb) bt full -10:显示后面10个栈帧以及局部变量(gdb) frame <栈帧编号>:进入指定的栈帧中,然后可以查看当前栈帧中的局部变量,以及栈帧内容等信息(gdb) info frame <栈帧编号>:可以查看指定栈帧的详细信息(gdb) up:进入上层栈帧(gdb) down:进入下层栈帧
调试BUG过程中查看变量信息是很有帮助的操作,查看方式如下:
(gdb) p <变量名>
对于调试来说寄存器中的值也很重要,可以查看到当前正在执行的指令的地址等。
本文共计2081个文字,预计阅读时间需要9分钟。
查看堆栈信息,无论是操作转储文件还是使用GDB设置断点进行调试,都可以通过输入命令来实现。例如,输入(gdb)bt命令可以打印堆栈内容进行查看。通常的栈溢出BUG,通过查看崩溃时的位置和源代码,基本就可以定位并解决问题。
基本信息查看 栈信息不管是操作转储文件还是用GDB设置断点进行调试,都可以输入 (gdb)bt 打印栈内容进行查看。一般的宕机BUG,看下宕机的位置,然后看下源代码基本就可以解决了。但是很多情况下简单的 (gdb)bt 还查不到问题,这时候就要涉及到比较复杂的操作。下面罗列了一些对栈的操作:
(gdb) bt:显示所有栈帧(gdb) bt 10:显示前面10个栈帧(gdb) bt -10:显示后面10个栈帧(gdb) bt full:显示栈帧以及局部变量(gdb) bt full 10:显示前面10个栈帧以及局部变量(gdb) bt full -10:显示后面10个栈帧以及局部变量(gdb) frame <栈帧编号>:进入指定的栈帧中,然后可以查看当前栈帧中的局部变量,以及栈帧内容等信息(gdb) info frame <栈帧编号>:可以查看指定栈帧的详细信息(gdb) up:进入上层栈帧(gdb) down:进入下层栈帧
调试BUG过程中查看变量信息是很有帮助的操作,查看方式如下:
(gdb) p <变量名>
对于调试来说寄存器中的值也很重要,可以查看到当前正在执行的指令的地址等。

