mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
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>
This commit is contained in:
parent
6ef1bab699
commit
d0bc5b725d
16
Makefile
16
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;
|
||||
|
Loading…
Reference in New Issue
Block a user