我的项目使用dlopen
在主线程内动态加载一个libray(以调试模式编译),然后使用dlsym
而没有问题。但是,当在 gdb 7.7.1 + dfsg-5 的调试模式下运行时,它会崩溃。我从内核日志中看到了这个错误:
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)
答案 0 :(得分:2)
完成!这是GDB 7.7.1+dfsg-5
的错误。
我安装了GDB 7.10.1
,现在可以了!