]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
tb-alvms.c (struct tb_entry_t, [...]): Revert back to use of Procedure Value instead...
authorOlivier Hainque <hainque@adacore.com>
Thu, 13 Dec 2007 10:36:42 +0000 (11:36 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 13 Dec 2007 10:36:42 +0000 (11:36 +0100)
2007-12-06  Olivier Hainque  <hainque@adacore.com>

* tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
of Procedure Value instead of Frame Pointer as the invocation
identifier associated with the instruction pointer in each traceback
entry.

* g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
TB_Entry_For): Revert back to use of Procedure Value instead of Frame
Pointer as the invocation identifier passed to tbk$symbolize.

* s-traent-vms.ads, s-traent-vms.adb
(Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
Procedure Value instead of Frame Pointer as the invocation identifier
passed to tbk$symbolize.

From-SVN: r130867

gcc/ada/g-trasym-vms-alpha.adb
gcc/ada/s-traent-vms.adb
gcc/ada/s-traent-vms.ads
gcc/ada/tb-alvms.c

index 68bb5d87e5927cc8bf15be9c52ef79ac4288b5ba..fadc9df7aabb2c9f7846803864e3dc747bb70871 100644 (file)
@@ -229,7 +229,7 @@ package body GNAT.Traceback.Symbolic is
               (Status,
                PC_For (Traceback (J)),
                PC_For (Traceback (J)),
-               FP_For (Traceback (J)),
+               PV_For (Traceback (J)),
                Return_Address,
                Image_Name_Addr,
                Module_Name_Addr,
index 3bf0d3f863555dff3c8ff2d59faf35e20ce944db..609c44b63531207e7f039c908d8302bc506dfe69 100644 (file)
@@ -43,13 +43,13 @@ package body System.Traceback_Entries is
    end PC_For;
 
    ------------
-   -- FP_For --
+   -- PV_For --
    ------------
 
-   function FP_For (TB_Entry : Traceback_Entry) return System.Address is
+   function PV_For (TB_Entry : Traceback_Entry) return System.Address is
    begin
-      return TB_Entry.FP;
-   end FP_For;
+      return TB_Entry.PV;
+   end PV_For;
 
    ------------------
    -- TB_Entry_For --
@@ -57,7 +57,7 @@ package body System.Traceback_Entries is
 
    function TB_Entry_For (PC : System.Address) return Traceback_Entry is
    begin
-      return (PC => PC, FP => System.Null_Address);
+      return (PC => PC, PV => System.Null_Address);
    end TB_Entry_For;
 
 end System.Traceback_Entries;
index 33dc98894b14b3b4fb2ee05d6038ce2358d26f72..ca9284ba256685c4fca5a17f4457db76b3c62f54 100644 (file)
 package System.Traceback_Entries is
    pragma Preelaborate;
 
-   --  Symbolization is done by a VMS service which requires an instruction
-   --  and a frame pointer for each traceback entry.
+   --  Symbolization is performed by a VMS service which requires more
+   --  than an instruction pointer.
 
    type Traceback_Entry is record
-      PC : System.Address;
-      FP : System.Address;
+      PC : System.Address;  --  Program Counter
+      PV : System.Address;  --  Procedure Value
    end record;
 
    pragma Suppress_Initialization (Traceback_Entry);
 
    Null_TB_Entry : constant Traceback_Entry :=
                      (PC => System.Null_Address,
-                      FP => System.Null_Address);
+                      PV => System.Null_Address);
 
    function PC_For (TB_Entry : Traceback_Entry) return System.Address;
-   function FP_For (TB_Entry : Traceback_Entry) return System.Address;
+   function PV_For (TB_Entry : Traceback_Entry) return System.Address;
 
    function TB_Entry_For (PC : System.Address) return Traceback_Entry;
 
index 5905282490f80693a73b217439bed5b24b0134bf..d69128b92718c8114dde3210331ca2bb764b21c4 100644 (file)
@@ -337,8 +337,8 @@ unwind_kernel_handler (frame_state_t * fs)
    system functions need more than just a mere PC to compute info on a frame
    (e.g. for non-symbolic->symbolic translation purposes).  */
 typedef struct {
-  ADDR pc; /* instruction pointer */
-  ADDR fp; /* frame pointer */
+  ADDR pc;  /* Program Counter.  */
+  ADDR pv;  /* Procedure Value.  */
 } tb_entry_t;
 
 /********************
@@ -383,7 +383,7 @@ __gnat_backtrace (void **array, int size,
          && (frame_state.pc < exclude_min || frame_state.pc > exclude_max))
        {
          tbe->pc = (ADDR) frame_state.pc;
-         tbe->fp = (ADDR) frame_state.fp;
+         tbe->pv = (ADDR) PV_FOR (frame_state.fp);
 
          cnt ++;
          tbe ++;