Как / Почему библиотека использует общую библиотеку, которая не указана в списке ldd? - PullRequest
0 голосов
/ 05 сентября 2018

Я получаю дамп ядра в моей общей библиотеке (libabc.so).

libabc.so - это библиотека, которую я создал, используя все статические библиотеки (используя -Wl, -Bstatic), кроме libdl.so & librt.so (используя -Wl, -Bdynamic).

Я использовал gdb, чтобы посмотреть дамп ядра. Stack strace показывает, что libabc.so вызывает некоторые функции и использует их из libsoftokn3.so, libfreeblpriv3.so и libnssutil3.so. Я проверил с помощью команды - 'ldd libabc.so', связаны ли вышеуказанные библиотеки, но он не перечисляет ни одну из вышеуказанных трех библиотек или библиотек, которые могут их использовать.

Моя проблема в том, почему / как компоновщик автоматически связывает эти общие библиотеки? Это причина для coredump?

Для справки:

#0  0x00007fc878cfa2f7 in PL_HashTableLookupConst (ht=0x0, 
key=0x7fffdf6eb840) at plhash.c:351
351     keyHash = (*ht->keyHash)(key);
[Current thread is 1 (Thread 0x7fc8791ed740 (LWP 13380))]
(gdb) bt
#0  0x00007fc878cfa2f7 in PL_HashTableLookupConst (ht=0x0, 
key=0x7fffdf6eb840) at plhash.c:351
#1  0x00007fc875ffe7b8 in SECOID_FindOID_Util () from /usr/lib/x86_64-linux- 
gnu/libnssutil3.so
#2  0x00007fc875ffe849 in SECOID_FindOIDTag_Util () from /usr/lib/x86_64-
linux-gnu/libnssutil3.so
#3  0x00007fc87573d992 in ?? () from /usr/lib/x86_64-linux-gnu/nss/libfreeblpriv3.so
#4  0x00007fc87573db9f in ?? () from /usr/lib/x86_64-linux-gnu/nss/libfreeblpriv3.so
#5  0x00007fc876502c05 in ?? () from /usr/lib/x86_64-linux-gnu/nss/libsoftokn3.so
#6  0x00007fc878c28e7d in PK11_GenerateKeyPairWithOpFlags () from /usr/avcd/bin/libabc.so
#7  0x00007fc878c58b8c in SECKEY_CreateECPrivateKey () from /usr/avcd/bin/libabc.so
#8  0x00007fc878c06de5 in ssl_CreateECDHEphemeralKeyPair () from /usr/avcd/bin/libabc.so
#9  0x00007fc878c078b3 in ssl_CreateStaticECDHEKeyPair () from /usr/avcd/bin/libabc.so
#10 0x00007fc878d154e7 in PR_CallOnceWithArg (once=0x7fc878fe7f40 <gECDHEKeyPairs+224>, 
    func=0x7fc878c07880 <ssl_CreateStaticECDHEKeyPair>, arg=0x7fffdf6ec180) at prinit.c:807
#11 0x00007fc878c07a30 in ssl_FilterSupportedGroups () from /usr/avcd/bin/libabc.so
#12 0x00007fc878bf07ed in ssl3_config_match_init () from /usr/avcd/bin/libabc.so
#13 0x00007fc878bf5b76 in ssl3_SendClientHello () from /usr/avcd/bin/libabc.so
#14 0x00007fc878c002bb in ssl_BeginClientHandshake () from /usr/avcd/bin/libabc.so
#15 0x00007fc878bd9742 in ssl_Do1stHandshake () from /usr/avcd/bin/libabc.so
#16 0x00007fc878bda317 in ssl_SecureRecv () from /usr/avcd/bin/libabc.so
#17 0x00007fc878bde041 in ssl_Recv () from /usr/avcd/bin/libabc.so
#18 0x00007fc878d0af21 in PR_Recv (fd=0xec1610, buf=0x7fffdf6ecbf0, amount=100, flags=0, 
    timeout=4294967295) at priometh.c:188
#19 0x00007fc878b8e634 in recv () from /usr/avcd/bin/libabc.so
#20 0x00007fc878b8eb1f in client_received_handshake(int) () from /usr/avcd/bin/libabc.so
#21 0x00007fc878b95820 in connect () from /usr/avcd/bin/libabc.so
#22 0x0000000000402af2 in service_create (ap_socket=ap_socket@entry=0x7fffdf6edc24, 
    a_serverName=<optimized out>, a_serverPort=5000, argv=argv@entry=0x7fffdf6edd18)
    at client.c:126
#23 0x00000000004034b8 in main (a_argc=<optimized out>, ap_argv=0x7fffdf6edd18) at client.c:48 
...