Точки наблюдения для общих объектов - PullRequest
1 голос
/ 08 июня 2011

Как добавить точку наблюдения в .gdbinit для определенной области памяти, которая будет выделена в куче из общего объекта .so?

Следующее будет работать, если .soбудет уже загружен:

watch *((TOKEN*)0x084E4C40)

Однако я хочу поместить это в .gdbinit, но это не работает, потому что он не знает о типе данных TOKEN, говоря:

В текущем контексте нет символа "TOKEN".

Если я дождусь загрузки .so, я могу это сделать.

Для точек останова я смог сделать:

set breakpoint pending on

Однако, похоже, нет ничего похожего на точки наблюдения.

Единственное, что я могу себе представить, это как-то загрузить символы отладки из файла .so прямо перед настройкой точки наблюдения.

Но как это сделать?

1 Ответ

2 голосов
/ 08 июня 2011

Вам на самом деле не нужен символ, только размер блока памяти, который вы хотите посмотреть.Используйте эту команду

watch *(char(*)[NNN])0x084E4C40

, где NNN равно sizeof(TOKEN).

...