ada: Further adjustments to User's Guide for PIE default
authorEric Botcazou <ebotcazou@adacore.com>
Tue, 29 Nov 2022 17:44:33 +0000 (18:44 +0100)
committerMarc Poulhiès <poulhies@adacore.com>
Thu, 1 Dec 2022 13:53:54 +0000 (14:53 +0100)
gcc/ada/

* doc/gnat_ugn/gnat_and_program_execution.rst (Non-Symbolic
Traceback): Add compilation line.
(Symbolic Traceback): Remove obsolete stuff.
* doc/gnat_ugn/gnat_utility_programs.rst (gnatsymbolize): Adjust.
* gnat_ugn.texi: Regenerate.

gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst
gcc/ada/gnat_ugn.texi

index 45ecea75416892811f321daf4d8e1325b880e520..5dab2d4562694a4ac95fc254350db23f1872343d 100644 (file)
@@ -928,10 +928,9 @@ Ada facilities defined in ``Ada.Exceptions``. Here is a simple example:
          P2;
       end STB;
 
-This program will output:
-
   ::
 
+     $ gnatmake stb -g -bargs -E -largs -no-pie
      $ stb
 
      raised CONSTRAINT_ERROR : stb.adb:12 range check failed
@@ -1070,7 +1069,7 @@ Here is an example:
 
   ::
 
-      $ gnatmake -g .\stb -bargs -E
+      $ gnatmake -g stb -bargs -E
       $ stb
 
       0040149F in stb.p1 at stb.adb:8
@@ -1082,16 +1081,6 @@ Here is an example:
       004011F1 in mainCRTStartup at crt1.c:222
       77E892A4 in ?? at ??:0
 
-In the above example the ``.\`` syntax in the ``gnatmake`` command
-is currently required by ``addr2line`` for files that are in
-the current working directory.
-Moreover, the exact sequence of linker options may vary from platform
-to platform.
-The above :switch:`-largs` section is for Windows platforms. By contrast,
-under Unix there is no need for the :switch:`-largs` section.
-Differences across platforms are due to details of linker implementation.
-
-
 .. rubric:: Tracebacks From Anywhere in a Program
 
 It is possible to get a symbolic stack traceback
index f2d42e96bd4ac758216a1934394fbeecc2e2e1ea..7df45d518aa0392e15cf8b75f48d5440c10c2f73 100644 (file)
@@ -2154,6 +2154,7 @@ building specialized scripts.
         with GNAT.IO; use GNAT.IO;
         with GNAT.Traceback; use GNAT.Traceback;
         with GNAT.Debug_Utilities;
+
         package body Pck is
            procedure Call_Me_Third is
               TB : Tracebacks_Array (1 .. 5);
@@ -2177,10 +2178,25 @@ building specialized scripts.
               Call_Me_Second;
            end Call_Me_First;
         end Pck;
+
+        with GNAT.IO; use GNAT.IO;
+        with GNAT.Debug_Utilities;
+        with GNAT.Traceback;
+        with System;
+
         with Pck; use Pck;
 
         procedure Foo is
+           LA : constant System.Address := \
+             GNAT.Traceback.Executable_Load_Address;
+
+           use type System.Address;
+
         begin
+           if LA /= System.Null_Address then
+              Put_Line ("Load address: " & GNAT.Debug_Utilities.Image_C (LA));
+           end if;
+
            Global_Val := 123;
            Call_Me_First;
         end Foo;
index 5224a1201b8438477f28ee5e0635d02722b900df..dfe44b0937c0b04e74f47b768f8b73c0b348fb46 100644 (file)
@@ -19,7 +19,7 @@
 
 @copying
 @quotation
-GNAT User's Guide for Native Platforms , Nov 28, 2022
+GNAT User's Guide for Native Platforms , Dec 01, 2022
 
 AdaCore
 
@@ -19200,13 +19200,9 @@ begin
    P2;
 end STB;
 @end example
-@end quotation
-
-This program will output:
-
-@quotation
 
 @example
+$ gnatmake stb -g -bargs -E -largs -no-pie
 $ stb
 
 raised CONSTRAINT_ERROR : stb.adb:12 range check failed
@@ -19350,7 +19346,7 @@ end STB;
 @end example
 
 @example
-$ gnatmake -g .\stb -bargs -E
+$ gnatmake -g stb -bargs -E
 $ stb
 
 0040149F in stb.p1 at stb.adb:8
@@ -19364,15 +19360,6 @@ $ stb
 @end example
 @end quotation
 
-In the above example the @code{.\} syntax in the @code{gnatmake} command
-is currently required by @code{addr2line} for files that are in
-the current working directory.
-Moreover, the exact sequence of linker options may vary from platform
-to platform.
-The above @code{-largs} section is for Windows platforms. By contrast,
-under Unix there is no need for the @code{-largs} section.
-Differences across platforms are due to details of linker implementation.
-
 @subsubheading Tracebacks From Anywhere in a Program