mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
This patch adds the necessary bits to enable stack tracing using SFrame. In the case the new SFrame stack tracing procedure doesn't find SFrame related info, the stack tracing falls back on default Dwarf implementation. The new SFrame stack tracing procedure is added to debug/backtrace.c file, the support functions are added in sysdeps folder, namely sframe.h, read-sframe.c and read-sfame.h. Signed-off-by: Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com> Reviewed-by: DJ Delorie <dj@redhat.com>
32 lines
1.4 KiB
C
32 lines
1.4 KiB
C
/* Internal header file for handling signal frames. Generic version.
|
|
Copyright (C) 2025 Free Software Foundation, Inc.
|
|
This file is part of the GNU C Library.
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
The GNU C Library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with the GNU C Library; if not, see
|
|
<https://www.gnu.org/licenses/>. */
|
|
|
|
/* Each architecture that supports SFrame may need to define several
|
|
macros to handle exceptional cases during stack backtracing.
|
|
|
|
MD_DECODE_SIGNAL_FRAME(frame) should recover frame information when
|
|
a signal-related exception occurs. The input frame must contain a
|
|
valid program counter (PC) field. On success, the macro should
|
|
return _URC_NO_REASON.
|
|
|
|
MD_DETECT_OUTERMOST_FRAME(frame) is used to detect the outermost
|
|
stack frame. It returns _URC_NO_REASON upon successful
|
|
detection.
|
|
|
|
The FRAME structure is defined in sysdeps/generic/sframe.h */
|