对于仅适用于Linux的解决方案,您可以使用backtrace(3),它仅返回一个数组
void*(实际上,每个数组都指向相应堆栈帧中的返回地址)。为了将这些转换为有用的东西,有backtrace_symbols(3)。
注意backtrace(3)中的notes部分:
如果不使用特殊的链接器选项,则符号名称可能不可用。对于使用GNU链接程序的系统,必须使用-
rdynamic链接程序选项。请注意,“静态”函数的名称未公开,并且在回溯中将不可用。

对于仅适用于Linux的解决方案,您可以使用backtrace(3),它仅返回一个数组
void*(实际上,每个数组都指向相应堆栈帧中的返回地址)。为了将这些转换为有用的东西,有backtrace_symbols(3)。
注意backtrace(3)中的notes部分:
如果不使用特殊的链接器选项,则符号名称可能不可用。对于使用GNU链接程序的系统,必须使用-
rdynamic链接程序选项。请注意,“静态”函数的名称未公开,并且在回溯中将不可用。