У меня есть приложение без источника или символов. Я хотел бы установить точку останова в модуле, который загружается через некоторое время после запуска. Модуль загружается по одному и тому же базовому адресу каждый раз (0x500000
). Я хотел бы установить точки останова внутри этого модуля перед запуском приложения, потому что я хотел бы избежать работы по поиску, какая инструкция в двоичном файле загружает модуль, и установки там точки останова.
Я знаю об ожидающих точках остановав GDB, где, если я скажу break code.c:53
или break function
, GDB попытается преобразовать его в адрес, а если не сможет, то пометит его как ожидающий и попытается пересмотреть каждый раз при загрузке нового модуля. Моя текущая проблема заключается в том, что кажется, что эта функция не работает для абсолютных адресов. Если я хочу break 0x501000
, GDB не помечает его как ожидающее, даже если нет модуля, чье адресное пространство охватывает 0x501000
.
Мой вопрос такой: Могу ли я установить точку останова наконкретный адрес, но сказать GDB подождать, пока этот модуль не загрузится?