Commit 543b4428 by Olivier Hainque Committed by Arnaud Charlet

tb-alvms.c (struct tb_entry_t, [...]): Revert back to use of Procedure Value…

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  <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
parent 46edcdb1
......@@ -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,
......
......@@ -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;
......@@ -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;
......
......@@ -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 ++;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment