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, другие функции занимают
другой, последний файл скомпилирован как динамическая библиотека.