查看栈信息
bt
info stack
查看源程序
list
ctrl + x + a 分屏调试,上半部分显示代码,下半部分显示调试信息。
查看内存
p xxxptr@n 查看xxxptr 指针内容 开始连续n个字节的内存
可以使用examine命令(简写为x)来查看内存地址中的值。x命令的语法如下所示:
x /<n/f/u> <addr>
-
n 表示显示内存的长度,也就是说从当前地址向后显示几个地址的内容。
-
f 表示显示的格式,如果是字符串,则用s,如果是数字,则可以用i。
-
u 表示从当前地址往后请求的字节数,默认是4个bytes。(b单字节,h双字节,w四字节,g八字节)
-
<addr> 表示一个内存地址。
监视窗口
在VisualStudio中,可以通过监视窗口动态查看变量的值。在gdb中,也提供了类似的命令display,它的语法是:
display <expr>
display /<fmt> <expr>
display /<fmt> <addr>
expr是一个表达式,fmt表示显示的格式,addr表示内存地址。当你用display设定好了一个或多个表达式后,只要你的程序被停下来(单步跟踪时),GDB会自动显示你所设置的这些表达式的值。
几个相关的命令如下:
- undisplay <dnums...> 不显示dispaly
- delete display [dnums] 删除自动显示,不带dnums参数则删除所有自动显示,也支持范围删除,如: delete display 1,3-5
- disable display <dnums...> 使display失效
- enable display <dnums...> 恢复display
- info display 查看display信息