我需要在正在运行的程序(在C中)的日志文件中打印调用堆栈,因为我需要检查流程, 我必须将跟踪发送到其他环境,我无法调试,有没有办法在C中执行。
答案 0 :(得分:1)
如果平台是linux(我也相信OSX),你可以使用backtrace和backtrace_symbols来实现你想要的目标。
根据backtrace
如果不使用特殊链接器,则符号名称可能不可用 选项。对于使用GNU链接器的系统,有必要使用 - 动态链接器选项。请注意,“静态”函数的名称不会公开,并且在回溯中不可用。