因此,如果您想查看堆栈或堆的碎屑,请尝试像
最后一个将向您展示200个字节,从Heapvar之前的20个字节开始。因此,如果您只是杂乱无章,您也可以看到堆头
视图堆栈:
gdb> backtrace
gdb> info frame
当前堆栈框架的观看参数:
gdb> info args
视图当前堆栈框架的本地变量:
gdb> info locals
naveration到父堆栈框架:
gdb> frame 1
验证堆栈我使用GDB进行调试的第一种方法是设置断点。这样就这样做了:
prompt> gdb ./x_bstree.c
(gdb) #prompt
(gdb) b 123 #break at line 123
(gdb) r #start program
现在您的程序停止了程序的第123行。现在,您可以使用print
检查堆栈中的变量或堆。对于堆栈变量,只需使用print <varname>
对于审核多线程应用程序的课程,您需要以单线程模式进行运行,然后dubug否则很难预测发生的事情。
对于其他任何内容,还有大量的文档GDB,许多网站也提供
GDB作弊表
.。
使用
ddd
。 DDD手册
也许我有点详细说明。我这样用它。
我的程序与调试符号:
gcc -g program.c -o program
ddd
在GUI中,您可以做各种各样的事情,查看机器代码,查看内存等。环顾四周。
在手册中,还有一部分检查堆栈。 ddd program
为您提供良好的界面
检查C程序。
Core_analyzer具有GDB插件和独立工具。 最新版本仅是GDB插件。
GDB插件命令显示内存统计。
ddd
单独使用工具
具有水平搜索和垂直搜索,它可能接近您的期望。
(gdb)
heap [/verbose or /v] [/leak or /l]
heap [/block or /b] [/cluster or /c] <addr_exp>
heap [/usage or /u] <var_exp>
heap [/topblock or /tb] [/topuser or /tu] <num>