почему мой backtrace () находит только путь динамической библиотеки - PullRequest
0 голосов
/ 07 апреля 2019
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, другие функции занимают другой, последний файл скомпилирован как динамическая библиотека.

...