diff options
Diffstat (limited to 'gcc/ada/s-traceb.adb')
-rw-r--r-- | gcc/ada/s-traceb.adb | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/gcc/ada/s-traceb.adb b/gcc/ada/s-traceb.adb deleted file mode 100644 index e467113..0000000 --- a/gcc/ada/s-traceb.adb +++ /dev/null @@ -1,118 +0,0 @@ ------------------------------------------------------------------------------- --- -- --- GNAT COMPILER COMPONENTS -- --- -- --- S Y S T E M . T R A C E B A C K -- --- -- --- B o d y -- --- -- --- Copyright (C) 1999-2015, Free Software Foundation, Inc. -- --- -- --- GNAT is free software; you can redistribute it and/or modify it under -- --- terms of the GNU General Public License as published by the Free Soft- -- --- ware Foundation; either version 3, or (at your option) any later ver- -- --- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- --- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- --- or FITNESS FOR A PARTICULAR PURPOSE. -- --- -- --- As a special exception under Section 7 of GPL version 3, you are granted -- --- additional permissions described in the GCC Runtime Library Exception, -- --- version 3.1, as published by the Free Software Foundation. -- --- -- --- You should have received a copy of the GNU General Public License and -- --- a copy of the GCC Runtime Library Exception along with this program; -- --- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- --- <http://www.gnu.org/licenses/>. -- --- -- --- GNAT was originally developed by the GNAT team at New York University. -- --- Extensive contributions were provided by Ada Core Technologies Inc. -- --- -- ------------------------------------------------------------------------------- - --- This is the default version of this package - --- Note: this unit must be compiled using -fno-optimize-sibling-calls. --- See comment below in body of Call_Chain for details on the reason. - -pragma Compiler_Unit_Warning; - -package body System.Traceback is - - procedure Call_Chain - (Traceback : System.Address; - Max_Len : Natural; - Len : out Natural; - Exclude_Min : System.Address := System.Null_Address; - Exclude_Max : System.Address := System.Null_Address; - Skip_Frames : Natural := 1); - -- Same as the exported version, but takes Traceback as an Address - - ------------------ - -- C_Call_Chain -- - ------------------ - - function C_Call_Chain - (Traceback : System.Address; - Max_Len : Natural) return Natural - is - Val : Natural; - begin - Call_Chain (Traceback, Max_Len, Val); - return Val; - end C_Call_Chain; - - ---------------- - -- Call_Chain -- - ---------------- - - function Backtrace - (Traceback : System.Address; - Len : Integer; - Exclude_Min : System.Address; - Exclude_Max : System.Address; - Skip_Frames : Integer) - return Integer; - pragma Import (C, Backtrace, "__gnat_backtrace"); - - procedure Call_Chain - (Traceback : System.Address; - Max_Len : Natural; - Len : out Natural; - Exclude_Min : System.Address := System.Null_Address; - Exclude_Max : System.Address := System.Null_Address; - Skip_Frames : Natural := 1) - is - begin - -- Note: Backtrace relies on the following call actually creating a - -- stack frame. To ensure that this is the case, it is essential to - -- compile this unit without sibling call optimization. - - -- We want the underlying engine to skip its own frame plus the - -- ones we have been requested to skip ourselves. - - Len := Backtrace (Traceback => Traceback, - Len => Max_Len, - Exclude_Min => Exclude_Min, - Exclude_Max => Exclude_Max, - Skip_Frames => Skip_Frames + 1); - end Call_Chain; - - procedure Call_Chain - (Traceback : in out System.Traceback_Entries.Tracebacks_Array; - Max_Len : Natural; - Len : out Natural; - Exclude_Min : System.Address := System.Null_Address; - Exclude_Max : System.Address := System.Null_Address; - Skip_Frames : Natural := 1) - is - begin - Call_Chain - (Traceback'Address, Max_Len, Len, - Exclude_Min, Exclude_Max, - - -- Skip one extra frame to skip the other Call_Chain entry as well - - Skip_Frames => Skip_Frames + 1); - end Call_Chain; - -end System.Traceback; |