У меня есть общая библиотека libtest.so
который будет загружен в основное использование программы dlopen
. Функция test()
находитесь в libtest.so
и будет назван в основной программе через dlsym
. Есть ли любой способ, на котором я мог настроить точку останова test
?
Обратите внимание на то, что основная программа не была связана с libtest.so
во время соединения времени. Иначе я должен смочь установить точку останова, хотя это - иск на рассмотрении. В моем случае, когда я делаю b test
, gdb скажет мне Function "test" not defined
.
На самом деле gdb должен сказать вам, что он может разрешить символ в будущем, когда будут загружены новые библиотеки:
(gdb) b test
Function "test" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (test) pending.
(gdb) r
И позже, когда объект .so будет загружен, он разрешит точку останова, например:
Reading symbols for shared libraries . done
Breakpoint 1 at 0xcafebebe
Pending breakpoint 1 - "test" resolved