gdb如何查看堆栈信息
时间: 2023-06-23 13:00:16 浏览: 91
在gdb调试过程中,可以使用以下命令查看堆栈信息:
1. 查看函数调用堆栈信息:使用`backtrace`命令可以查看当前函数的调用堆栈信息,例如:
```
(gdb) backtrace
#0 0x00000000004005b7 in func1 () at main.c:9
#1 0x00000000004005f7 in func2 () at main.c:14
#2 0x0000000000400629 in main () at main.c:19
```
上述输出结果表示当前函数`func1`是被`func2`调用的,在`main`函数中调用了`func2`。
2. 查看局部变量的值:使用`print`命令可以查看局部变量的值,例如:
```
(gdb) print var1
$1 = 10
```
上述输出结果表示当前局部变量`var1`的值为`10`。
3. 查看堆信息:使用`info malloc`命令可以查看当前程序的堆信息,例如:
```
(gdb) info malloc
Arena 0:
system bytes = 135168
in use bytes = 0
total bytes = 135168
in use blocks = 0
total blocks = 0
max in use = 0
Arena 1:
system bytes = 135168
in use bytes = 16
total bytes = 135168
in use blocks = 1
total blocks = 1
max in use = 16
All arenas:
system bytes = 270336
in use bytes = 16
total bytes = 270336
in use blocks = 1
total blocks = 1
max in use = 16
```
上述输出结果表示当前程序中有一个堆块,占用了`16`个字节的空间。
以上仅是gdb中查看堆栈信息的几个常用命令,还有很多其他命令可以用来查看程序的运行状态。
相关推荐
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)