почему мой backtrace() находит только путь к динамической библиотеке

#linux #dll #backtrace

#linux #dll #обратный путь

Вопрос:

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

Комментарии:

1. Вопрос очень сложен для чтения. Есть ли шанс, что вы могли бы переформатировать, чтобы его было легче читать?

2. Впервые используя этот веб, я пытаюсь отформатировать его, подождите минутку.

3. кто-нибудь знает, как повторно отредактировать мой вопрос?

4. маленькие серые ссылки для редактирования в левом нижнем углу вашего вопроса (поделиться, отредактировать, отметить)