DWARF-анализ DW_AT_data_member_location - PullRequest
0 голосов
/ 14 июля 2020

Я реализую интерпретатор информации DWARF для своей компании, и я не понимаю, как интерпретировать DW_AT_data_member_location, когда он имеет следующую форму:

DW_FORM = DW_FORM_block

Значение блока ( без учета длины) = 0x23xx или 0x23xx01, где «xx» - это фактическое смещение относительно включающей структуры.

Я не могу найти в спецификации DWARF V3, откуда взято «0x23 / 0x01». Я перепроверил с другим парсером DWARF, и значение «0x23xx / 0x23xx01» кажется правильным, т.е. фактическое значение блока.

Любая информация об этой кодировке / где в spe c это описано?

Спасибо

1 Ответ

0 голосов
/ 14 июля 2020

Неважно, я понял, 0x23 - это DW_OP_plus_uconst, за ним следует ULEB128, который является смещением. Не так уж и понятно в спе c имо.

...