config/binutils/elf2flt.in
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 2467 200836977ce6
child 3090 a221c86d9b33
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 # elf2flt options
     2 
     3 if ARCH_BINFMT_FLAT
     4 
     5 comment "elf2flt"
     6 
     7 choice
     8     bool
     9     prompt "elf2flt version"
    10 # Don't remove next line
    11 # CT_INSERT_VERSION_BELOW
    12 
    13 config ELF2FLT_CVSHEAD
    14     bool
    15     prompt "CVS Head"
    16     help
    17       Grab the latest version of elf2flt from the CVS repository
    18 
    19 config ELF2FLT_CVS_SNAPSHOT
    20     bool
    21     prompt "CVS Snapshot"
    22 
    23 endchoice
    24 
    25 config ELF2FLT_CVS_SNAPSHOT_SPEC
    26     string
    27     depends on ELF2FLT_CVS_SNAPSHOT
    28     default ""
    29     prompt "CVS refspec for elf2flt"
    30     help
    31        What you enter here will be passed verbatim to the cvs checkout command
    32        so be careful!
    33 
    34 config ELF2FLT_VERSION
    35     string
    36     default "head" if ELF2FLT_CVSHEAD
    37 # Don't remove next line
    38 # CT_INSERT_VERSION_STRING_BELOW
    39 
    40 config ELF2FLT_EXTRA_CONFIG_ARRAY
    41     string
    42     prompt "elf2flt extra config"
    43     default ""
    44     help
    45       Extra flags passed onto ./configure when configuring
    46       
    47       You can enter multiple arguments here, and arguments can contain spaces
    48       if they are properly quoted (or escaped, but prefer quotes). Eg.:
    49           --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
    50 
    51 endif