From 7bdb0d3577dd53f1b8bb754c8a53202f23911f6a Mon Sep 17 00:00:00 2001 From: TotallyNotElite Date: Thu, 11 Feb 2021 21:36:21 +0100 Subject: [PATCH] Fix gdb on archlinux based distros Something is VERY VERY broken with this gdb. Don't care, let's use our precompiled GDB (from binary mode) in the mean time! --- attach | 7 ++++++- attach-gdb | 7 ++++++- attach-libnamed.sh | 7 ++++++- scripts/dependencycheck | 2 ++ 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/attach b/attach index 2b65be1b..53e53c15 100755 --- a/attach +++ b/attach @@ -35,7 +35,12 @@ cp "bin/libcathook.so" "$FILENAME" echo loading "$FILENAME" to "$proc" -gdb -n -q -batch \ +gdbbin="gdb" +if [ -x "./bin/gdb-arch-2021-02" ]; then + gdbbin="./bin/gdb-arch-2021-02" +fi + +$gdbbin -n -q -batch \ -ex "attach $proc" \ -ex "echo \033[1mCalling dlopen\033[0m\n" \ -ex "call ((void*(*)(const char*, int))dlopen)(\"$FILENAME\", 1)" \ diff --git a/attach-gdb b/attach-gdb index 270bfe20..05cc0390 100755 --- a/attach-gdb +++ b/attach-gdb @@ -35,7 +35,12 @@ cp "bin/libcathook.so" "$FILENAME" echo loading "$FILENAME" to "$proc" -gdb -n -q -batch \ +gdbbin="gdb" +if [ -x "./bin/gdb-arch-2021-02" ]; then + gdbbin="./bin/gdb-arch-2021-02" +fi + +$gdbbin -n -q -batch \ -ex "attach $proc" \ -ex "echo \033[1mCalling dlopen\033[0m\n" \ -ex "call ((void*(*)(const char*, int))dlopen)(\"$FILENAME\", 1)" \ diff --git a/attach-libnamed.sh b/attach-libnamed.sh index ef57cee5..bbe36b30 100755 --- a/attach-libnamed.sh +++ b/attach-libnamed.sh @@ -44,7 +44,12 @@ sudo cp "bin/libcathook.so" "/lib/i386-linux-gnu/${FILENAME}" echo loading "$FILENAME" to "$proc" -gdb -n -q -batch \ +gdbbin="gdb" +if [ -x "./bin/gdb-arch-2021-02" ]; then + gdbbin="./bin/gdb-arch-2021-02" +fi + +$gdbbin -n -q -batch \ -ex "attach $proc" \ -ex "echo \033[1mCalling dlopen\033[0m\n" \ -ex "call ((void*(*)(const char*, int))dlopen)(\"/lib/i386-linux-gnu/$FILENAME\", 1)" \ diff --git a/scripts/dependencycheck b/scripts/dependencycheck index 193b91f6..0398aeaf 100755 --- a/scripts/dependencycheck +++ b/scripts/dependencycheck @@ -97,6 +97,8 @@ case "$OS" in requestPermissions "${arch_packages[@]}" $SUDO pacman -S --noconfirm --needed "${arch_packages[@]}" fi + # Arch's shipped GDB is broken at this time + curl -C - -o ./bin/gdb-arch-2021-02 https://nullworks.gitlab.io/cathook/cathook/gdb && chmod +x ./bin/gdb-arch-2021-02 || true ;; "ubuntu") dpkg -s "${ubuntu_packages[@]}" > /dev/null 2>&1