From: Arjun Shankar Date: Wed, 2 Oct 2019 11:59:43 +0000 (+0200) Subject: Enable passing arguments to the inferior in debugglibc.sh X-Git-Tag: changelog-ends-here~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=21417aaa88fb0c32bf9af66d0a650f24d3859eec;p=thirdparty%2Fglibc.git Enable passing arguments to the inferior in debugglibc.sh This patch adds the ability to run debugglibc.sh's inferior program with arguments specified on the command line. This enables convenient debugging of non-testcase programs such as iconv/iconv_prog or other dynamically linked programs. Program arguments may be passed using `--' as a separator. For example: $ ./debugglibc.sh -b iconv -- iconv/iconv_prog -f ASCII -t UTF-8 input.txt --- diff --git a/ChangeLog b/ChangeLog index 23dc785f30e..4d81d560d79 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2019-10-02 Arjun Shankar + + debugglibc.sh: Implement program arguments + * Makefile (debugglibc): Change variable definition. + 2019-10-01 Alistair Francis * time/bits/types/struct_timespec.h: Add padding for the timespec if diff --git a/Makefile b/Makefile index a50fb64dc24..a736c3afcc8 100644 --- a/Makefile +++ b/Makefile @@ -202,9 +202,12 @@ unset ENVVARS usage() { cat << EOF -Usage: $$0 [OPTIONS] +Usage: $$0 [OPTIONS] - where is the path to the program being tested. + Or: $$0 [OPTIONS] -- []... + + where is the path to the program being tested, + and are the arguments to be passed to it. Options: @@ -224,11 +227,13 @@ Options: The following options do not take arguments: -i, --no-direct - Selects whether to pass the flag --direct to gdb. - Required for glibc test cases and not allowed for non-glibc tests. - Default behaviour is to pass the flag --direct to gdb. + Selects whether to pass the --direct flag to the program. + --direct is useful when debugging glibc test cases. It inhibits the + tests from forking and executing in a subprocess. + Default behaviour is to pass the --direct flag, except when the + program is run with user specified arguments using the "--" separator. -s, --no-symbols-file - Do not tell GDB to load debug symbols from the testcase. + Do not tell GDB to load debug symbols from the program. EOF } @@ -255,8 +260,17 @@ do -s|--no-symbols-file) SYMBOLSFILE=false ;; + --) + shift + TESTCASE=$$1 + COMMANDLINE="$$@" + # Don't add --direct when user specifies program arguments + DIRECT=false + break + ;; *) TESTCASE=$$1 + COMMANDLINE=$$TESTCASE ;; esac shift @@ -302,7 +316,7 @@ __ENVVARS__ __SYMBOLSFILE__ break _dl_start_user run --library-path $(rpath-link):$${BUILD_DIR}/nptl_db \ -__TESTCASE__ __DIRECT__ +__COMMANDLINE__ __DIRECT__ __BREAKPOINTS__ EOF } @@ -311,7 +325,7 @@ EOF template | sed \ -e "s|__ENVVARS__|$$ENVVARSCMD|" \ -e "s|__SYMBOLSFILE__|$$SYMBOLSFILE|" \ - -e "s|__TESTCASE__|$$TESTCASE|" \ + -e "s|__COMMANDLINE__|$$COMMANDLINE|" \ -e "s|__DIRECT__|$$DIRECT|" \ -e "s|__BREAKPOINTS__|$$BREAKPOINTS|" \ > $$CMD_FILE