|
@@ -41,6 +41,14 @@ interface
|
|
|
|
|
|
type
|
|
|
|
|
|
+ { TOmfObjSymbol }
|
|
|
+
|
|
|
+ TOmfObjSymbol = class(TObjSymbol)
|
|
|
+ public
|
|
|
+ { string representation for the linker map file }
|
|
|
+ function AddressStr(AImageBase: qword): string;override;
|
|
|
+ end;
|
|
|
+
|
|
|
{ TOmfRelocation }
|
|
|
|
|
|
TOmfRelocation = class(TObjRelocation)
|
|
@@ -304,6 +312,21 @@ implementation
|
|
|
version
|
|
|
;
|
|
|
|
|
|
+{****************************************************************************
|
|
|
+ TOmfObjSymbol
|
|
|
+****************************************************************************}
|
|
|
+
|
|
|
+ function TOmfObjSymbol.AddressStr(AImageBase: qword): string;
|
|
|
+ var
|
|
|
+ base: qword;
|
|
|
+ begin
|
|
|
+ if assigned(TOmfObjSection(objsection).MZExeUnifiedLogicalSegment) then
|
|
|
+ base:=TOmfObjSection(objsection).MZExeUnifiedLogicalSegment.MemBasePos
|
|
|
+ else
|
|
|
+ base:=(address shr 4) shl 4;
|
|
|
+ Result:=HexStr(base shr 4,4)+':'+HexStr(address-base,4);
|
|
|
+ end;
|
|
|
+
|
|
|
{****************************************************************************
|
|
|
TOmfRelocation
|
|
|
****************************************************************************}
|
|
@@ -524,6 +547,7 @@ implementation
|
|
|
constructor TOmfObjData.create(const n: string);
|
|
|
begin
|
|
|
inherited create(n);
|
|
|
+ CObjSymbol:=TOmfObjSymbol;
|
|
|
CObjSection:=TOmfObjSection;
|
|
|
end;
|
|
|
|