summaryrefslogtreecommitdiff
path: root/Meta
diff options
context:
space:
mode:
authorDaniel Bertalan <dani@danielbertalan.dev>2022-02-19 00:39:02 +0100
committerAndreas Kling <kling@serenityos.org>2022-02-19 11:36:08 +0100
commit0f2e18403c7093910a69985736db676f8a13cc75 (patch)
tree36bcac85b2b130840326357931d21bbffb5df9ce /Meta
parent0787571192610983ef4f72ce1d67539de942e699 (diff)
downloadserenity-0f2e18403c7093910a69985736db676f8a13cc75.zip
Meta: Make `serenity.sh gdb` work with the Clang toolchain
We now pass along the toolchain type to all subcommands. This ensures that gdb will load the correct debug information for kernels compiled with Clang, and the following warning won't appear with the GNU toolchain: > WARNING: unknown toolchain 'gdb'. Defaulting to GNU. > Valid values are 'Clang', 'GNU' (default)
Diffstat (limited to 'Meta')
-rwxr-xr-xMeta/debug-kernel.sh11
-rwxr-xr-xMeta/serenity.sh3
2 files changed, 10 insertions, 4 deletions
diff --git a/Meta/debug-kernel.sh b/Meta/debug-kernel.sh
index cc39c63602..b700ccf940 100755
--- a/Meta/debug-kernel.sh
+++ b/Meta/debug-kernel.sh
@@ -18,6 +18,11 @@ if [ -z "$SERENITY_KERNEL_DEBUGGER" ]; then
fi
fi
+toolchain_suffix=
+if [ "$SERENITY_TOOLCHAIN" = "Clang" ]; then
+ toolchain_suffix="clang"
+fi
+
# The QEMU -s option (enabled by default in ./run) sets up a debugger
# remote on localhost:1234. So point our debugger there, and inform
# the debugger which binary to load symbols, etc from.
@@ -45,10 +50,10 @@ fi
exec $SERENITY_KERNEL_DEBUGGER \
- -ex "file $SCRIPT_DIR/../Build/${SERENITY_ARCH:-i686}/Kernel/Prekernel/$prekernel_image" \
+ -ex "file $SCRIPT_DIR/../Build/${SERENITY_ARCH:-i686}$toolchain_suffix/Kernel/Prekernel/$prekernel_image" \
-ex "set confirm off" \
- -ex "directory $SCRIPT_DIR/../Build/${SERENITY_ARCH:-i686}/" \
- -ex "add-symbol-file $SCRIPT_DIR/../Build/${SERENITY_ARCH:-i686}/Kernel/Kernel -o $kernel_base" \
+ -ex "directory $SCRIPT_DIR/../Build/${SERENITY_ARCH:-i686}$toolchain_suffix/" \
+ -ex "add-symbol-file $SCRIPT_DIR/../Build/${SERENITY_ARCH:-i686}$toolchain_suffix/Kernel/Kernel -o $kernel_base" \
-ex "set confirm on" \
-ex "set arch $gdb_arch" \
-ex "set print frame-arguments none" \
diff --git a/Meta/serenity.sh b/Meta/serenity.sh
index 9743b2b6e7..a4b75f8409 100755
--- a/Meta/serenity.sh
+++ b/Meta/serenity.sh
@@ -185,6 +185,7 @@ cmd_with_target() {
BUILD_DIR="$SERENITY_SOURCE_DIR/Build/$TARGET$TARGET_TOOLCHAIN"
if [ "$TARGET" != "lagom" ]; then
export SERENITY_ARCH="$TARGET"
+ export SERENITY_TOOLCHAIN="$TOOLCHAIN_TYPE"
if [ "$TOOLCHAIN_TYPE" = "Clang" ]; then
TOOLCHAIN_DIR="$SERENITY_SOURCE_DIR/Toolchain/Local/clang"
else
@@ -376,7 +377,7 @@ if [[ "$CMD" =~ ^(build|install|image|copy-src|run|gdb|test|rebuild|recreate|kad
build_target
build_target install
build_image
- tmux new-session "$ARG0" __tmux_cmd "$TARGET" run "${CMD_ARGS[@]}" \; set-option -t 0 mouse on \; split-window "$ARG0" __tmux_cmd "$TARGET" gdb "${CMD_ARGS[@]}" \;
+ tmux new-session "$ARG0" __tmux_cmd "$TARGET" "$TOOLCHAIN_TYPE" run "${CMD_ARGS[@]}" \; set-option -t 0 mouse on \; split-window "$ARG0" __tmux_cmd "$TARGET" "$TOOLCHAIN_TYPE" gdb "${CMD_ARGS[@]}" \;
fi
;;
test)