《100-gdb-tips》——查看调用堆栈

实验平台:wsl - debian

《100-gdb-tips》——查看调用堆栈
 1 #include <stdio.h> 
 2 
 3 int func1(int a)
 4  { 
 5     return 2 * a; 
 6  }
 7  
 8  int func2(int a) 
 9  { 
10     int c = 0;
11     c = 2 * func1(a);
12     return c; 
13  }
14  
15  int func3(int a)
16  {
17     int c = 0; 
18     c = 2 * func2(a); 
19     return c; 
20  }
21  
22  int main(void) 
23  { 
24     printf("%d\n", func3(10));
25     return 0; 
26  }
View Code

 

第一步:gdb启动程序

《100-gdb-tips》——查看调用堆栈

 

 打断点:b test.c:5

 

第二步:查看堆栈

《100-gdb-tips》——查看调用堆栈

 

调用方的堆栈层级高于被调用的的堆栈层级 

第三步:用 frame n 可以查看堆栈的执行代码

《100-gdb-tips》——查看调用堆栈

 

 第四步: frame  n  之后可以用 i frame 查看n层堆栈的地址

《100-gdb-tips》——查看调用堆栈

 

 frame 堆栈地址也可以看到堆栈的代码。

上一篇:Matlab Tips: 如何在函数内部得到被调用时的输入变量名?


下一篇:【Swift Mac开发】开发日常小记录Tips