patches/gdb/6.8a/120-tdep-opcode-include-workaround.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Dec 13 23:32:39 2011 +0100 (2011-12-13)
branch1.13
changeset 2847 c0bf2319af08
parent 747 d3e603e7c17c
permissions -rw-r--r--
scripts: fix dumping execution backtrace

Dumping the backtrace has been broken since changeset #652e56d6d35a:
scripts: execute each steps in a subshell

We can spawn sub-sub-shells in some cases.

The way the fault handler works is to dump the backtrace, but to avoid
printing it once for every sub-shell (which could get quite confusing),
it simply exits when it detects that it is being run in a sub-shell,
leaving to the top-level shell the work to dump the backtrace.

Because each step is executed in its own sub-shell, the variable arrays
that contain the step name, the source file and line number, are lost
when exiting the per-step sub-shell.

Hence, the backtrace is currently limited to printing only the top-level
main procedure of the shell.

Fix this thus:
- when dumping the bckatraces for the steps & the functions, remember
it was dumped, and only dump it if it was not already dumped
- at the top-level shell, print the hints

Also, rename the top-level step label.

Reported-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
(transplanted from 4193d6e6a17430a177fa88c287879c2c35e319f3)
     1 Original patch from gentoo: gentoo/src/patchsets/gdb/6.8/20_all_gdb-tdep-opcode-include-workaround.patch
     2 -= BEGIN original header =-
     3 workaround build failure
     4 
     5 http://bugs.gentoo.org/216368
     6 
     7 -= END original header =-
     8 diff -durN gdb-6.8.orig/gdb/frv-tdep.c gdb-6.8/gdb/frv-tdep.c
     9 --- gdb-6.8.orig/gdb/frv-tdep.c	2008-01-11 14:19:59.000000000 +0100
    10 +++ gdb-6.8/gdb/frv-tdep.c	2008-06-17 16:07:34.000000000 +0200
    11 @@ -32,7 +32,7 @@
    12  #include "gdb_assert.h"
    13  #include "sim-regno.h"
    14  #include "gdb/sim-frv.h"
    15 -#include "opcodes/frv-desc.h"	/* for the H_SPR_... enums */
    16 +#include "../opcodes/frv-desc.h"	/* for the H_SPR_... enums */
    17  #include "symtab.h"
    18  #include "elf-bfd.h"
    19  #include "elf/frv.h"
    20 diff -durN gdb-6.8.orig/gdb/mep-tdep.c gdb-6.8/gdb/mep-tdep.c
    21 --- gdb-6.8.orig/gdb/mep-tdep.c	2008-01-11 14:20:02.000000000 +0100
    22 +++ gdb-6.8/gdb/mep-tdep.c	2008-06-17 16:07:34.000000000 +0200
    23 @@ -53,8 +53,8 @@
    24  
    25  /* Get the user's customized MeP coprocessor register names from
    26     libopcodes.  */
    27 -#include "opcodes/mep-desc.h"
    28 -#include "opcodes/mep-opc.h"
    29 +#include "../opcodes/mep-desc.h"
    30 +#include "../opcodes/mep-opc.h"
    31  
    32  
    33  /* The gdbarch_tdep structure.  */