October 23, 2024
Chicago 12, Melborne City, USA
C++

JNI project uses backtrace to generate crash stack trace, but it cannot be resolved with addr2line


signal_handler code

void *trace[100];
// Get the stack trace first
int trace_size = ::backtrace(trace, 100);
char** backtrace_strings = backtrace_symbols(trace, trace_size);
if (backtrace_strings) {
    for (int i = 0; i < trace_size; i++) {
        ::write(fd, backtrace_strings[i], strlen(backtrace_strings[i]));
        ::write(fd, "\n", 1);
    }
    free(backtrace_strings);
}

backtrace stack symbol

MyApp crashed by signal: 11
Accessing address: (nil)

------ STACK TRACE ------
EIP:
/tmp/vectorcorenativeutils23241153416458/libvectorcorejni_x86_avx512.so(_Z9trigger_1v+0x65)[0x7fc724784d95]

Backtrace:
/tmp/vectorcorenativeutils23241153416458/libvectorcorejni_x86_avx512.so(_Z16writeStackTrace2iPvi+0x89) [0x7fc7247849b9]
/tmp/vectorcorenativeutils23241153416458/libvectorcorejni_x86_avx512.so(_Z14sigsegvHandleriP9siginfo_tPv+0xc4) [0x7fc724784b04]
/lib64/libpthread.so.0(+0xf6d0) [0x7fc7a68a76d0]
/tmp/vectorcorenativeutils23241153416458/libvectorcorejni_x86_avx512.so(_Z9trigger_1v+0x65) [0x7fc724784d95]
/tmp/vectorcorenativeutils23241153416458/libvectorcorejni_x86_avx512.so(_ZNK7lindorm6vector9FlatIndex11getDistanceEPKvRKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EEifRSt5dequeISt4pairIfSA_ESaISH_EE+0xd90) [0x7fc724786cb0]
/tmp/vectorcorenativeutils23241153416458/libvectorcorejni_x86_avx512.so(Java_com_alibaba_lindorm_base_vectorcore_FlatIndex_getDistance+0x126) [0x7fc724763386]
[0x7fc7881cea10]

addr2line failed

addr2line -e /tmp/vectorcorenativeutils23241153416458/libvectorcorejni_x86_avx512.so -f 0x7fc724784d95
??
??:0

I tried to use addr2line, but it can not resolve the symbol



You need to sign in to view this answers

Leave feedback about this

  • Quality
  • Price
  • Service

PROS

+
Add Field

CONS

+
Add Field
Choose Image
Choose Video