+ "set" support in dwarf debug info if compiler is compiled with

-dGDB_SUPPORTS_DWARF_SETS (not default, because supported only as of
    gdb 6.6, and earlier versions refuse to debug programs containing
    DW_TAG_set_type tags)

git-svn-id: trunk@7957 -
This commit is contained in:
Jonas Maebe 2007-07-05 13:17:27 +00:00
parent 1348be69fe
commit 9fedea7b9f

View File

@ -2782,6 +2782,20 @@ implementation
procedure TDebugInfoDwarf2.appenddef_set(def: tsetdef);
begin
{$ifdef GDB_SUPPORTS_DWARF_SETS}
{ current (20070704 -- patch was committed on 20060513) gdb cvs supports set types }
if assigned(def.typesym) then
append_entry(DW_TAG_set_type,false,[
DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
DW_AT_byte_size,DW_FORM_data2,def.size
])
else
append_entry(DW_TAG_set_type,false,[
DW_AT_byte_size,DW_FORM_data2,def.size
]);
append_labelentry_ref(DW_AT_type,def_dwarf_lab(def.elementdef));
{$else GDB_SUPPORTS_DWARF_SETS}
{ at least gdb up to 6.4 doesn't support sets in dwarf, there is a patch available to fix this:
http://sources.redhat.com/ml/gdb-patches/2005-05/msg00278.html (FK) }
@ -2796,6 +2810,7 @@ implementation
DW_AT_encoding,DW_FORM_data1,DW_ATE_unsigned,
DW_AT_byte_size,DW_FORM_data2,def.size
]);
{$endif GDB_SUPPORTS_DWARF_SETS}
finish_entry;
end;