Добавление точки останова / точки наблюдения, когда местоположение становится недоступным - PullRequest
0 голосов
/ 16 апреля 2020

В программе, которую я отлаживаю, я наблюдаю, что ячейка памяти (скажем, 0x40102010) доступна в одной точке, но она становится недоступной позже (вероятно, из-за вызова munmap()). Программа аварийно завершает работу с сегфоутом, потому что пытается прочитать это местоположение.

Мне нужно найти вызов munmap(), который делает это местоположение доступным. До сих пор я пытался:

  • Добавление точки наблюдения в ячейку памяти. К сожалению, GDB, по-видимому, не рассматривает событие unmap как изменение местоположения, поэтому точка наблюдения никогда не срабатывает. результаты с использованием специального инструмента. Затем этот инструмент позволяет мне искать любые события, которые влияют на данное местоположение.

(Возможно, я получаю другое местоположение для этого объекта, когда я запускаю процесс в strace, если в таком случае я не смогу отладить это с помощью подхода (2))

Поэтому мне интересно, есть ли способ добавить точку останова, когда определенная область памяти становится недоступной, чтобы я мог проверить стек вызовов, местные жители и т. д. c. Это возможно в GDB?

Спасибо.

...