// st.h
void fun4();
//vim stack_traces.cpp
#include <execinfo.h>
#include <stdio.h>
#include <stdlib.h>
#include "./st.h"
//using::std
-
/* 打印调用栈的最大深度 */
#define DUMP_STACK_DEPTH_MAX 16
-
/* 打印调用栈函数 */
void dump_trace() {
void *stack_trace[DUMP_STACK_DEPTH_MAX] = {0};
char **stack_strings = NULL;
int stack_depth = 0;
int i = 0;
-
/* 获取栈中各层调用函数地址 */
stack_depth = backtrace(stack_trace, DUMP_STACK_DEPTH_MAX);
-
/* 查找符号表将函数调用地址转换为函数名称 */
stack_strings = (char **)backtrace_symbols(stack_trace, stack_depth);
if (NULL ==