Во второй половине дня, Everbody.
У меня есть приложение ‘test’, скомпилированное main.c. Динамическая библиотека ‘libtest.so’, которая компилируется test.cpp с ‘-g’. В main.c я вызываю libtest.so с помощью dlopen. И теперь я хочу установить точку останова в test.cpp, но GDB никогда не достигнет этого. Я делаю следующее:
GDB ./test -d / home / lcl / test
break test.cpp: 35
бежать
Кто-нибудь может дать мне несколько советов, спасибо!
Вы должны сначала убедиться, что dlopen
на самом деле удается (скорее всего, это не так).
Для этого:
main.c
после dlopen
,NULL
В этот момент GDB должен был загрузить символы для libtest.so
, а также libtest.so
должен появиться в info shared
Вывод ГБД.
Если все выглядит хорошо, info break
должен показывать активную точку останова в test.cpp:35
по какому-то адресу. Если эта точка останова никогда не достигнута, скорее всего, вы никогда не выполняете эту строку кода.
Других решений пока нет …