info stack
时间: 2023-08-09 18:10:26 浏览: 87
要查看函数调用栈信息和当前函数的堆栈信息,可以使用调试工具或者编程语言提供的相关函数。在C语言中,可以使用gdb调试工具来查看函数调用栈信息和当前函数的堆栈信息。
在给出的代码中,可以在main函数中添加以下代码来查看函数调用栈信息和当前函数的堆栈信息:
```c
#include <stdio.h>
#include <execinfo.h>
void printStackTrace() {
void *stack\[10\];
int size = backtrace(stack, 10);
char **symbols = backtrace_symbols(stack, size);
printf("Function call stack:\n");
for (int i = 0; i < size; i++) {
printf("%s\n", symbols\[i\]);
}
free(symbols);
}
int main(void) {
int data1 = 1;
int data2 = 2;
int data3 = 0;
data3 = fun(data1, data2);
printf("***main(): data3: %d\n", data3);
printStackTrace();
return 0;
}
```
这段代码中,printStackTrace函数使用backtrace和backtrace_symbols函数来获取函数调用栈信息,并打印出来。在main函数中调用printStackTrace函数即可查看函数调用栈信息和当前函数的堆栈信息。
请注意,这段代码需要在支持backtrace和backtrace_symbols函数的环境中编译和运行,例如在Linux系统中使用gcc编译器。
#### 引用[.reference_title]
- *1* *3* [StackMap属性解析](https://blog.csdn.net/qq_26000415/article/details/94401129)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Linux下 gdb 调试-查看函数堆栈-操作说明一](https://blog.csdn.net/wojiaxiaohuang2014/article/details/127406505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文