diff options
Diffstat (limited to 'gcc45-ehdebug.diff')
-rw-r--r-- | gcc45-ehdebug.diff | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/gcc45-ehdebug.diff b/gcc45-ehdebug.diff deleted file mode 100644 index 1534aa9..0000000 --- a/gcc45-ehdebug.diff +++ /dev/null @@ -1,157 +0,0 @@ -diff -pruN origsrc/gcc-4.5.0/gcc/unwind-dw2-fde.c src/gcc-4.5.0/gcc/unwind-dw2-fde.c ---- origsrc/gcc-4.5.0/gcc/unwind-dw2-fde.c 2009-09-20 12:03:33.000000000 +0100 -+++ src/gcc-4.5.0/gcc/unwind-dw2-fde.c 2010-04-19 04:28:35.406250000 +0100 -@@ -37,6 +37,8 @@ see the files COPYING3 and COPYING.RUNTI - #include "gthr.h" - #endif - -+#define __debug_unwind_enabled (0) -+ - /* The unseen_objects list contains objects that have been registered - but not yet categorized in any way. The seen_objects list has had - its pc_begin and count fields initialized at minimum, and is sorted -@@ -840,6 +842,8 @@ binary_search_unencoded_fdes (struct obj - struct fde_vector *vec = ob->u.sort; - size_t lo, hi; - -+ if (__debug_unwind_enabled) printf ("search fdes ob %p: vec %p count %d\n", ob, vec, vec->count); -+ - for (lo = 0, hi = vec->count; lo < hi; ) - { - size_t i = (lo + hi) / 2; -@@ -849,6 +853,8 @@ binary_search_unencoded_fdes (struct obj - memcpy (&pc_begin, (const void * const *) f->pc_begin, sizeof (void *)); - memcpy (&pc_range, (const uaddr *) f->pc_begin + 1, sizeof (uaddr)); - -+if (__debug_unwind_enabled) printf ("fde#%d (%p): pc_begin %p pc_range %p\n", i, f, pc_begin, (void *)pc_range); -+ - if (pc < pc_begin) - hi = i; - else if (pc >= pc_begin + pc_range) -@@ -856,7 +862,7 @@ binary_search_unencoded_fdes (struct obj - else - return f; - } -- -+if (__debug_unwind_enabled) printf ("**not found\n"); - return NULL; - } - -@@ -977,6 +983,8 @@ _Unwind_Find_FDE (void *pc, struct dwarf - /* Linear search through the classified objects, to find the one - containing the pc. Note that pc_begin is sorted descending, and - we expect objects to be non-overlapping. */ -+ if (__debug_unwind_enabled) printf ("Search seen obs for pc %p: Bases t %p, d %p, func %p\n", -+ pc, bases->tbase, bases->dbase, bases->func); - for (ob = seen_objects; ob; ob = ob->next) - if (pc >= ob->pc_begin) - { -@@ -987,6 +995,8 @@ _Unwind_Find_FDE (void *pc, struct dwarf - } - - /* Classify and search the objects we've not yet processed. */ -+ if (__debug_unwind_enabled) printf ("Search unseen obs for pc %p: Bases t %p, d %p, func %p\n", -+ pc, bases->tbase, bases->dbase, bases->func); - while ((ob = unseen_objects)) - { - struct object **p; -@@ -1022,6 +1032,15 @@ _Unwind_Find_FDE (void *pc, struct dwarf - read_encoded_value_with_base (encoding, base_from_object (encoding, ob), - f->pc_begin, &func); - bases->func = (void *) func; -+ -+ if (__debug_unwind_enabled) printf ("Found fde %p: Bases t %p, d %p, func %p\n", -+ f, bases->tbase, bases->dbase, bases->func); -+ -+ } -+ else -+ { -+ if (__debug_unwind_enabled) printf ("No fde %p: Bases t %p, d %p, func %p\n", -+ f, bases->tbase, bases->dbase, bases->func); - } - - return f; -diff -pruN origsrc/gcc-4.5.0/gcc/unwind-dw2.c src/gcc-4.5.0/gcc/unwind-dw2.c ---- origsrc/gcc-4.5.0/gcc/unwind-dw2.c 2010-01-20 08:13:50.000000000 +0000 -+++ src/gcc-4.5.0/gcc/unwind-dw2.c 2010-04-19 04:28:35.421875000 +0100 -@@ -79,6 +79,7 @@ struct _Unwind_Context - - /* Byte size of every register managed by these routines. */ - static unsigned char dwarf_reg_size_table[DWARF_FRAME_REGISTERS+1]; -+#define __debug_unwind_enabled (0) - - - /* Read unaligned data from the instruction buffer. */ -@@ -370,7 +371,7 @@ extract_cie_info (const struct dwarf_cie - fs->retaddr_column = (_Unwind_Word)utmp; - } - fs->lsda_encoding = DW_EH_PE_omit; -- -+if (__debug_unwind_enabled) printf ("extract cie: augmentation '%c'\n", *aug); - /* If the augmentation starts with 'z', then a uleb128 immediately - follows containing the length of the augmentation field following - the size. */ -@@ -386,6 +387,7 @@ extract_cie_info (const struct dwarf_cie - /* Iterate over recognized augmentation subsequences. */ - while (*aug != '\0') - { -+if (__debug_unwind_enabled) printf ("handle augmentation '%c'\n", *aug); - /* "L" indicates a byte showing how the LSDA pointer is encoded. */ - if (aug[0] == 'L') - { -@@ -423,6 +425,7 @@ extract_cie_info (const struct dwarf_cie - return ret; - } - -+if (__debug_unwind_enabled) printf ("extract cie: augmentation done\n"); - return ret ? ret : p; - } - -@@ -1568,9 +1571,25 @@ uw_identify_context (struct _Unwind_Cont - return _Unwind_GetCFA (context) + _Unwind_IsSignalFrame (context); - } - -+static _Unwind_Reason_Code -+debug_unwind_trace (struct _Unwind_Context *ctx, void *arg) -+{ -+ fflush (NULL); -+ printf ("_Unwind_Context %p\n", ctx); -+ printf (" cfa %p ra %p lsda %p\n", ctx->cfa, ctx->ra, ctx->lsda); -+ printf (" bases: t %p d %p func %p\n", ctx->bases.tbase, ctx->bases.dbase, ctx->bases.func); -+ printf ("\n"); -+ fflush (NULL); -+ return _URC_NO_REASON; -+} - - #include "unwind.inc" - -+void debug_dump_stack_trace (void *arg) -+{ -+ _Unwind_Backtrace (debug_unwind_trace, arg); -+} -+ - #if defined (USE_GAS_SYMVER) && defined (SHARED) && defined (USE_LIBUNWIND_EXCEPTIONS) - alias (_Unwind_Backtrace); - alias (_Unwind_DeleteException); -diff -pruN origsrc/gcc-4.5.0/gcc/unwind.inc src/gcc-4.5.0/gcc/unwind.inc ---- origsrc/gcc-4.5.0/gcc/unwind.inc 2009-04-09 16:00:19.000000000 +0100 -+++ src/gcc-4.5.0/gcc/unwind.inc 2010-04-19 04:28:35.421875000 +0100 -@@ -96,8 +96,9 @@ _Unwind_RaiseException(struct _Unwind_Ex - - /* Set up fs to describe the FDE for the caller of cur_context. The - first time through the loop, that means __cxa_throw. */ -+if (__debug_unwind_enabled) printf ("Ctx: ra %p\n", cur_context.ra); - code = uw_frame_state_for (&cur_context, &fs); -- -+if (__debug_unwind_enabled) printf ("... code %d, perso %p\n", code, fs.personality); - if (code == _URC_END_OF_STACK) - /* Hit end of stack with no handler found. */ - return _URC_END_OF_STACK; -@@ -112,6 +113,7 @@ _Unwind_RaiseException(struct _Unwind_Ex - { - code = (*fs.personality) (1, _UA_SEARCH_PHASE, exc->exception_class, - exc, &cur_context); -+if (__debug_unwind_enabled) printf ("perso returns code %d\n", code); - if (code == _URC_HANDLER_FOUND) - break; - else if (code != _URC_CONTINUE_UNWIND) |