Output the load address in backtraces for PIE executables on Darwin

This aligns Darwin with Linux and Windows.

gcc/ada/
	PR target/117538
	* libgnat/s-trasym.adb (Symbolic_Traceback): Prepend the load
	address of the executable if it is not null.
This commit is contained in:
Simon Wright 2024-12-18 22:26:27 +01:00 committed by Eric Botcazou
parent ed5ef9b392
commit 1d148e0401

View file

@ -69,7 +69,25 @@ package body System.Traceback.Symbolic is
end loop;
Result (Last) := ASCII.LF;
return Result (1 .. Last);
declare
function Executable_Load_Address return System.Address;
pragma Import
(C, Executable_Load_Address,
"__gnat_get_executable_load_address");
Load_Address : constant System.Address :=
Executable_Load_Address;
begin
if Load_Address = System.Null_Address then
return Result (1 .. Last);
else
return "Load address: 0x"
& System.Address_Image (Load_Address)
& ASCII.LF
& Result (1 .. Last);
end if;
end;
end;
end if;
end Symbolic_Traceback;