linux - 为什么我的 backtrace() 只能找到动态库的路径
问题描述
void testfunc3(){
char* funcname[20];
int n = 0 ;
n = backtrace((void**)funcname,20);
char** p_need_free = (char**)backtrace_symbols((void**)funcname,n);
int i = 0;
for(i=0;i<n;i++){
printf("funcname is : %s\n",p_need_free[i]);
}
free(p_need_free);
}
void testfunc2(){
testfunc3();
}
void testfunc1(){
testfunc2();
}
/** in another file **/
int main(){
testfunc1();
return 0;
}
这个项目有 2 个文件,main() 占用 1 个,其他函数占用另一个,后一个文件被编译为动态库。
解决方案
推荐阅读
- google-cloud-dataflow - 使用 Java SDK 以编程方式获取 Dataflow 管道作业列表
- algorithm - kth largest element in range interval
- sql - 动态更新 Rails / ActiveRecord / SQL 数据库
- task-parallel-library - 静止运行时任务状态更改为 RanToCompletion
- algorithm - Searching for time complexity of my recursive algorithm
- c# - How to store user input into a List then output results - C# console program
- audio - Raspberry Pi running Raspian in Telnet
- arrays - 无法投射阵列
可编码 - amazon-cloudformation - Set Event Value for Cloudtrail - all S3 buckets
- excel - 当我选择一个范围时,如何在 VBA 上引用它的第一个选定单元格和最后一个选定单元格?