scripts/build/debug/500-strace.sh
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Sat Oct 06 23:48:07 2012 +0200 (2012-10-06)
changeset 3083 3a7b2eee9dcd
parent 2910 cc170c96362c
child 3199 ab7168481db5
permissions -rw-r--r--
scripts: add option to start an interactive debug shell

Add an option that, when a command fails:
- starts an interactive shell with the failed command's environment
- attempts re-execution of the failed command, continues, or aborts
at user's whim.

Before starting the debug-shell, the backtrace is printed.
When exiting for an abort, the standard error message is printed.

Based on an idea and a patch from: Johannes Stezenbach <js@sig21.net>
http://sourceware.org/ml/crossgcc/2012-09/msg00144.html

Signed-off-by: Johannes Stezenbach <js@sig21.net>
[yann.morin.1998@free.fr: integrate in the fault handler]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Acked-by: Johannes Stezenbach <js@sig21.net>
Patchwork-Id: 191571
Patchwork-Id: 191668
     1 # Build script for strace
     2 
     3 do_debug_strace_get() {
     4     local base_url="http://downloads.sourceforge.net/project/strace/strace"
     5     CT_GetFile "strace-${CT_STRACE_VERSION}" "${base_url}/${CT_STRACE_VERSION}"
     6     # Downloading from sourceforge leaves garbage, cleanup
     7     CT_DoExecLog ALL rm -f "${CT_TARBALLS_DIR}/showfiles.php"*
     8 }
     9 
    10 do_debug_strace_extract() {
    11     CT_Extract "strace-${CT_STRACE_VERSION}"
    12     CT_Patch "strace" "${CT_STRACE_VERSION}"
    13 }
    14 
    15 do_debug_strace_build() {
    16     CT_DoStep INFO "Installing strace"
    17     mkdir -p "${CT_BUILD_DIR}/build-strace"
    18     CT_Pushd "${CT_BUILD_DIR}/build-strace"
    19 
    20     CT_DoLog EXTRA "Configuring strace"
    21     CT_DoExecLog CFG                                        \
    22     "${CT_SRC_DIR}/strace-${CT_STRACE_VERSION}/configure"   \
    23         --build=${CT_BUILD}                                 \
    24         --host=${CT_TARGET}                                 \
    25         --prefix=/usr
    26 
    27     CT_DoLog EXTRA "Building strace"
    28     CT_DoExecLog ALL make
    29 
    30     CT_DoLog EXTRA "Installing strace"
    31     CT_DoExecLog ALL make DESTDIR="${CT_DEBUGROOT_DIR}" install
    32 
    33     CT_Popd
    34     CT_EndStep
    35 }
    36