public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc] Do not use ld.so to open statically linked programs in debugglibc.sh
@ 2019-12-04 17:01 Gabriel F.T.Gomes
0 siblings, 0 replies; only message in thread
From: Gabriel F.T.Gomes @ 2019-12-04 17:01 UTC (permalink / raw)
To: glibc-cvs
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d0bc5b725dac852764b98b9b3e0560c003bd000a
commit d0bc5b725dac852764b98b9b3e0560c003bd000a
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Tue Dec 3 22:40:38 2019 -0300
Do not use ld.so to open statically linked programs in debugglibc.sh
Debugging programs that have been dynamically linked against an
uninstalled glibc requires unusual steps, such as letting gdb know where
the thread db library is located and explicitly calling the loader.
However, when the program under test is statically linked, these steps
are not required (as a matter of fact, using the dynamic loader to run a
statically linked program is wrong and will fail), and gdb should be
called the usual way.
This patch modifies debugglibc.sh so that it checks if the program under
test is statically linked, then runs the debugger appropriately.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Diff:
---
Makefile | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 924fdb6..b43226c 100644
--- a/Makefile
+++ b/Makefile
@@ -209,6 +209,7 @@ BUILD_DIR="$(common-objpfx)"
CMD_FILE="$(common-objpfx)debugglibc.gdb"
CONTAINER=false
DIRECT=true
+STATIC=false
SYMBOLSFILE=true
unset TESTCASE
unset BREAKPOINTS
@@ -297,8 +298,8 @@ do
shift
done
-# Check for required argument
-if [ ! -v TESTCASE ]
+# Check for required argument and if the testcase exists
+if [ ! -v TESTCASE ] || [ ! -f $${TESTCASE} ]
then
usage
exit 1
@@ -318,6 +319,14 @@ else
DIRECT=""
fi
+# Check if the test case is static
+if file $${TESTCASE} | grep "statically linked" >/dev/null
+then
+ STATIC=true
+else
+ STATIC=false
+fi
+
# Expand symbols loading command
if [ "$$SYMBOLSFILE" == true ]
then
@@ -366,6 +375,9 @@ then
# automatically attach GDB to it.
WAIT_FOR_DEBUGGER=1 $(common-objpfx)testrun.sh --tool=container $${TESTCASE} &
gdb -x $${TESTCASE}.gdb
+elif [ "$$STATIC" == true ]
+then
+gdb $${TESTCASE}
else
# Start the test case debugging in two steps:
# 1. the following command invokes gdb to run the loader;
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-12-04 17:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-04 17:01 [glibc] Do not use ld.so to open statically linked programs in debugglibc.sh Gabriel F.T.Gomes
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).