在gdb中运行时,dlopen会导致段错误

我的项目在主线程中用dlopendynamic加载一个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 ,现在它工作!