[fpc-devel] debug information for Variant type

Jonas Maebe jonas.maebe at elis.ugent.be
Thu Dec 3 14:09:48 CET 2009


On 01 Dec 2009, at 13:42, Paul Ishenin wrote:

> Jonas Maebe wrote:
>> Would it be enough if the type name were changed to "variant"? It  
>> would not be 100% safe (since "variant" is not a reserved word,  
>> anyone can declare a variable/type/... with the name "variant"),  
>> but I don't immediately see another solution.
> I think yes.

Does the attached patch work for DWARF with Lazarus? "ptype  
variantvar" still shows tvardata, but "info variantvar" shows "static  
VARIANT V;", and I don't know what the GDB MI will return for the  
query that Lazarus uses.


Jonas

Index: dbgdwarf.pas
===================================================================
--- dbgdwarf.pas	(revision 14293)
+++ dbgdwarf.pas	(working copy)
@@ -3245,8 +3245,11 @@

      procedure TDebugInfoDwarf2.appenddef_variant(list:TAsmList;def:  
tvariantdef);
        begin
-        { variants aren't known to dwarf2 but writting tvardata  
should be enough }
-        appenddef_record(list,trecorddef(vardatadef));
+        append_entry(DW_TAG_typedef,false,[
+          DW_AT_name,DW_FORM_string,'Variant'#0
+        ]);
+        append_labelentry_ref(DW_AT_type,def_dwarf_lab(vardatadef));
+        finish_entry;
        end;

      function TDebugInfoDwarf2.dwarf_version: Word;




More information about the fpc-devel mailing list