summaryrefslogblamecommitdiff
path: root/system/elfutils/backtrace-signal.patch
blob: 3de66da31cacf908f8eea5502d2d98a4a47a5fbc (plain) (tree)



















                                                                                   
Backtraces are thrown off by musl's __restore_sigs internal symbol.

--- elfutils-0.192/tests/backtrace.c.old	2024-10-18 14:03:43.000000000 -0500
+++ elfutils-0.192/tests/backtrace.c	2024-11-19 03:56:50.568150211 -0600
@@ -90,6 +90,15 @@
       return;
     }
   Dwfl_Module *mod;
+  /* Handle musl's signal handler.  */
+  static bool restore_sigs_seen = false;
+  if (symname && strcmp (symname, "__restore_sigs") == 0)
+    {
+      restore_sigs_seen = true;
+      return;
+    }
+  if (restore_sigs_seen)
+    frameno--;
   /* Skip frames for which there isn't a function name.  */
   static int nulls_seen = 0;
   if (symname == NULL)