mirror of
https://github.com/JakeHillion/drgn.git
synced 2024-12-23 01:33:06 +00:00
c22e501295
drgn_compound_type_from_dwarf() and drgn_enum_type_from_dwarf() check the DW_AT_declaration flag to decide whether the type is a declaration of an incomplete type or a definition of a complete type. However, they check DW_AT_declaration with dwarf_attr_integrate(), which follows the DW_AT_specification reference if it is present. The DIE referenced by DW_AT_specification typically is a declaration, so this erroneously identifies definitions as declarations. Additionally, if drgn_debug_info_find_complete() finds the same definition, we can end up recursing until we hit the DWARF parsing depth limit. Fix it by not using dwarf_attr_integrate() for DW_AT_declaration. Signed-off-by: Jay Kamat <jaygkamat@gmail.com> |
||
---|---|---|
.. | ||
helpers | ||
__init__.py | ||
dwarf.py | ||
dwarfwriter.py | ||
elf.py | ||
elfwriter.py | ||
libdrgn.py | ||
test_docs.py | ||
test_dwarf.py | ||
test_language_c.py | ||
test_lexer.py | ||
test_object.py | ||
test_path.py | ||
test_platform.py | ||
test_program.py | ||
test_python.py | ||
test_serialize.py | ||
test_type.py | ||
test_util.py |