From 543b4428214232de8bf9d0377a99b137756b0451 Mon Sep 17 00:00:00 2001 From: Olivier Hainque Date: Thu, 13 Dec 2007 11:36:42 +0100 Subject: [PATCH] tb-alvms.c (struct tb_entry_t, [...]): Revert back to use of Procedure Value instead of Frame Pointer as the... 2007-12-06 Olivier Hainque * 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 | 2 +- gcc/ada/s-traent-vms.adb | 10 +++++----- gcc/ada/s-traent-vms.ads | 12 ++++++------ gcc/ada/tb-alvms.c | 6 +++--- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/gcc/ada/g-trasym-vms-alpha.adb b/gcc/ada/g-trasym-vms-alpha.adb index 68bb5d87e592..fadc9df7aabb 100644 --- a/gcc/ada/g-trasym-vms-alpha.adb +++ b/gcc/ada/g-trasym-vms-alpha.adb @@ -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, diff --git a/gcc/ada/s-traent-vms.adb b/gcc/ada/s-traent-vms.adb index 3bf0d3f86355..609c44b63531 100644 --- a/gcc/ada/s-traent-vms.adb +++ b/gcc/ada/s-traent-vms.adb @@ -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; diff --git a/gcc/ada/s-traent-vms.ads b/gcc/ada/s-traent-vms.ads index 33dc98894b14..ca9284ba2566 100644 --- a/gcc/ada/s-traent-vms.ads +++ b/gcc/ada/s-traent-vms.ads @@ -40,22 +40,22 @@ 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; diff --git a/gcc/ada/tb-alvms.c b/gcc/ada/tb-alvms.c index 5905282490f8..d69128b92718 100644 --- a/gcc/ada/tb-alvms.c +++ b/gcc/ada/tb-alvms.c @@ -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 ++; -- 2.47.2