LINUX.ORG.RU

GDB не считывает информацию 2 и более низких уровней DWARFa

 , ,


0

3

Доброго времени суток! Столкнулся с такой проблемой: при использовании стандартных функций gdb таких как info functions и info values он не считывает функции или переменные, находящиеся внутри функций, хотя в дампе они присутствуют. Но по-видимому из дампа gdb считывает только теги первого уровня, пропуская теги более низких уровней. Кто-нибудь знает как решить эту проблему?

Если не ошибаюсь, то правила для отладочной информации такие:

  • компилятор понижает её версию где это возможно сделать без потери информации;
  • инструменты вроде gdb берут всё, что понимают, а остальное игнорируют.

Так что похоже на нестыковку версий и получается, что варианта два: понизить версию отладочной информации при компиляции (-gdwarf-2, например) или же обновить gdb.

xaizek ★★★★★ ()

Используешь новые компиляторы с gdb до весрии 7.0? Хотя некоторые команды и не должны залезать в локальный скоп.

mashina ★★★★★ ()
Последнее исправление: mashina (всего исправлений: 1)
Ответ на: комментарий от angrycrabe

Не встречал, но по идее в этом не должно быть необходимости, т.е. если есть DWARF-4 теги, будут использоваться они, если есть версии ниже, gdb должен использовать их. Вопрос в том, что ему в этом может помешать.

xaizek ★★★★★ ()
Ответ на: комментарий от xaizek

Просмотрел их файл dwarf2read.c, отсечений по версиям не заметил. Может баг или несоответствие стандарту DWARF.

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

xaizek ★★★★★ ()
Ответ на: комментарий от angrycrabe

Отпишитесь, пожалуйста, как будет результат

zl0y ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.