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:
parent
ed5ef9b392
commit
1d148e0401
1 changed files with 19 additions and 1 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue