Мой проект загружает libray (скомпилированный в режиме отладки) динамически в пределах основного потока с dlopen
, а затем без проблем использует dlsym
. Однако при запуске в режиме отладки с gdb 7.7.1 + dfsg-5 он сработает. Я вижу из журналов ядра эту ошибку:dlopen вызывает segfault при работе в gdb
gdb[8814]: segfault at 7fff4e019fa0 ip 0000000000718b95 sp 00007fff4e019f90 error 6 in gdb[400000+574000
Это приводит к тому, что я не могу использовать отладчик. Ужасно!
Что я могу сделать, чтобы исправить это?
Мой проект имеет эту сложную структуру. Я знаю, что он имеет редкую структуру, но мне говорят использовать внешнюю библиотеку.
MAIN RUNNABLE (compiled with S1.so)
|
- SHARED_1 (S1.so) (compiled with s1.a, s2.a, s3.a)
| - STATIC_1 (s1.a)
| - dlopen S2.so and call functions from S2.so
| - STATIC_2 (s2.a)
| - STATIC_3 (s3.a)
- DYNAMICALLY_LOADING_1 (S2.so) (compiled with s1.a, s2.a, s3.a)
| - STATIC_1 (s1.a)
| - STATIC_2 (s2.a)
| - STATIC_3 (s3.a)
Минимальный пример, чтобы воспроизвести проблему? –
:(Из такого огромного проекта я не мог извлечь какую-либо вещь. –
Да, вы можете ... –