public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] libgcc: Expose the current instruction pointer in SEH _Unwind_Backtrace
@ 2020-09-01 13:01 Martin Storsjö
  2020-09-04 12:51 ` Martin Storsjö
  2020-09-08 12:21 ` [PATCH v2] libgcc: Expose the instruction pointer and stack " Martin Storsjö
  0 siblings, 2 replies; 8+ messages in thread
From: Martin Storsjö @ 2020-09-01 13:01 UTC (permalink / raw)
  To: gcc-patches

Previously, the SEH version of _Unwind_Backtrace did unwind
the stack and call the provided callback function as intended,
but there was little the caller could do within the callback to
actually get any info about that particular level in the unwind.

Set the ra pointer, which is used by _Unwind_GetIP, to allow
using this function to inspect the state within the callback,
before calling the callback function.

2020-09-01  Martin Storsjö  <martin@martin.st>

libgcc/Changelog:
        * unwind-seh.c (_Unwind_Backtrace): Set the ra pointer before
        calling the callback.
---
 libgcc/unwind-seh.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libgcc/unwind-seh.c b/libgcc/unwind-seh.c
index 1a70180cfaa..72473135862 100644
--- a/libgcc/unwind-seh.c
+++ b/libgcc/unwind-seh.c
@@ -466,6 +466,8 @@ _Unwind_Backtrace(_Unwind_Trace_Fn trace,
 			    &gcc_context.disp->HandlerData,
 			    &gcc_context.disp->EstablisherFrame, NULL);
 
+      gcc_context.ra = ms_context.Rip;
+
       /* Call trace function.  */
       if (trace (&gcc_context, trace_argument) != _URC_NO_REASON)
 	return _URC_FATAL_PHASE1_ERROR;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-11-06  6:44 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-01 13:01 [PATCH] libgcc: Expose the current instruction pointer in SEH _Unwind_Backtrace Martin Storsjö
2020-09-04 12:51 ` Martin Storsjö
2020-09-08 12:21 ` [PATCH v2] libgcc: Expose the instruction pointer and stack " Martin Storsjö
2020-11-02 12:05   ` Kai Tietz
2020-11-06  3:27     ` Jeff Law
2020-11-06  6:44       ` Jonathan Yong
2020-11-03  0:32   ` Jonathan Yong
2020-11-06  3:28   ` Jeff Law

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).