Bladeren bron

+ override TObjRelocation.ToString, to help with debugging

Nikolay Nikolov 1 week geleden
bovenliggende
commit
0b01378398
1 gewijzigde bestanden met toevoegingen van 29 en 0 verwijderingen
  1. 29 0
      compiler/ogbase.pas

+ 29 - 0
compiler/ogbase.pas

@@ -308,6 +308,7 @@ interface
         constructor CreateGroup(ADataOffset:TObjSectionOfs;grp:TObjSectionGroup;Atyp:TObjRelocationType);
         constructor CreateRaw(ADataOffset:TObjSectionOfs;s:TObjSymbol;ARawType:byte);
         function TargetName:TSymStr;
+        function ToString: ansistring; override;
         property typ: TObjRelocationType read GetType write SetType;
      end;
 
@@ -998,6 +999,34 @@ implementation
           result:=objsection.Name;
       end;
 
+
+    function TObjRelocation.ToString: ansistring;
+      var
+        typstr,
+        symbolstr,
+        objsectionstr,
+        groupstr: ansistring;
+      begin
+        Str(typ,typstr);
+        if Assigned(symbol) then
+          symbolstr:=symbol.ToString
+        else
+          symbolstr:='nil';
+        if Assigned(objsection) then
+          objsectionstr:=objsection.ToString
+        else
+          objsectionstr:='nil';
+        if Assigned(group) then
+          groupstr:=group.ToString
+        else
+          groupstr:='nil';
+        Result:='(typ:'+typstr+';DataOffset:'+tostr(DataOffset)+
+          ';orgsize:'+tostr(orgsize)+';symbol:'+symbolstr+
+          ';objsection:'+objsectionstr+';group:'+groupstr+
+          ';ftype:'+tostr(ftype)+';size:'+tostr(size)+
+          ';flags:'+tostr(flags)+')';
+      end;
+
 {****************************************************************************
                               TObjSection
 ****************************************************************************}