У меня есть проект ndk-build в Android, и я хочу выполнить анализ с помощью Android Studio Profiler в 3.2.Но у меня всегда происходит сбой:
2019-02-20 10:10:42.369 21888-21888/? A/DEBUG: pid: 21705, tid: 21882, name: engine >>> com.test.example <<<
2019-02-20 10:10:42.369 21888-21888/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1f
2019-02-20 10:10:42.369 21888-21888/? A/DEBUG: Cause: null pointer dereference
2019-02-20 10:10:42.369 21888-21888/? A/DEBUG: r0 bc281b60 r1 ffffffff r2 bb704199 r3 bb4e9400
2019-02-20 10:10:42.369 21888-21888/? A/DEBUG: r4 bc281b08 r5 bc281b60 r6 f0230240 r7 bc281aa8
2019-02-20 10:10:42.369 21888-21888/? A/DEBUG: r8 bb704100 r9 d149a598 sl 00000001 fp 00000000
2019-02-20 10:10:42.369 21888-21888/? A/DEBUG: ip bb76c6f4 sp bc281aa8 lr bb6d4083 pc bb6d447e cpsr 80000030
2019-02-20 10:10:42.372 21888-21888/? A/DEBUG: backtrace:
2019-02-20 10:10:42.372 21888-21888/? A/DEBUG: #00 pc 002b047e /data/app/com.test.example-JNm5Mn25Zd3obHmkwErCEg==/lib/arm/mylib.so
2019-02-20 10:10:42.372 21888-21888/? A/DEBUG: #01 pc 002b007f /data/app/com.test.example-JNm5Mn25Zd3obHmkwErCEg==/lib/arm/mylib.so
2019-02-20 10:10:42.372 21888-21888/? A/DEBUG: #02 pc 002adee5 /data/app/com.test.example-JNm5Mn25Zd3obHmkwErCEg==/lib/arm/mylib.so
2019-02-20 10:10:42.372 21888-21888/? A/DEBUG: #03 pc 002ade93 /data/app/com.test.example-JNm5Mn25Zd3obHmkwErCEg==/lib/arm/mylib.so (__gxx_personality_v0+270)
2019-02-20 10:10:42.372 21888-21888/? A/DEBUG: #04 pc 0018175c /data/data/com.test.example/libperfa_arm.so
2019-02-20 10:10:42.372 21888-21888/? A/DEBUG: #05 pc 00182080 /data/data/com.test.example/libperfa_arm.so
Насколько я знаю, __gxx_personality_v0
относится к механизму исключений в C ++.Но как я могу исправить эту проблему?
Единственное, что я попробовал, это если я добавлю флаг -fno-exceptions
в свою библиотеку, то эта проблема решена.Но мне интересно, есть ли здесь какое-то другое решение, так как no-exception
не согласуется с библиотекой STL.