我的项目在主线程中用dlopen
dynamic加载一个libray(在debugging模式下编译),然后使用dlsym
没有问题。 但是,当在gdb 7.7.1 + dfsg-5的debugging模式下运行时,它会崩溃。 我从内核日志中看到这个错误:
gdb[8814]: segfault at 7fff4e019fa0 ip 0000000000718b95 sp 00007fff4e019f90 error 6 in gdb[400000+574000
这导致我无法使用debugging器。 可怕!
我能做些什么来解决这个问题?
我的项目有这个复杂的结构。 我知道它有罕见的结构,但我被告知要使用外部库。
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)
完成! 这是GDB 7.7.1+dfsg-5
一个bug。 我已经安装了GDB 7.10.1
,现在它工作!