Во второй половине дня, Everbody. У меня есть приложение 'test', скомпилированное main.c. Динамический liabrary '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
останова в main.c
после dlopen
.NULL
В этот момент GDB должен иметь загруженные символы для libtest.so
, а libtest.so
должен отображаться в info shared
вывода GDB.
Если все выглядит хорошо, info break
должен показывать активную test.cpp:35
останова в test.cpp:35
на каком-то адресе. Если эта точка останова никогда не попадает, вероятно, вы никогда не используете эту линию кода.