diff options
| author | lizzie <lizzie@eden-emu.dev> | 2025-12-17 05:41:11 +0100 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-12-17 05:41:11 +0100 |
| commit | 50f8d4130da57cb3be39595b8aa7d9c914ac5b56 (patch) | |
| tree | 93bf5d49d0393d1338a4a2b5fb7cb5c556440484 /tools | |
| parent | e4dccd5a5cca46eb98d2474060758bab58126b07 (diff) | |
[dynarmic] allow better dtrace diagnostics for code - do not clobber %rbp and save frame pointer (#2653)
Saving the %rbp pointer allows us to backref previous stackframes easily
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2653
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/dtrace-tool.sh | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/tools/dtrace-tool.sh b/tools/dtrace-tool.sh deleted file mode 100755 index 4a75848fcd..0000000000 --- a/tools/dtrace-tool.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/local/bin/bash -ex - -# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project -# SPDX-License-Identifier: GPL-3.0-or-later - -# Basic script to run dtrace sampling over the program (requires Flamegraph) -# Usage is either running as: ./dtrace-tool.sh pid (then input the pid of the process) -# Or just run directly with: ./dtrace-tool.sh <command> - -FLAMEGRAPH_DIR=".." -fail() { - printf '%s\n' "$1" >&2 - exit "${2-1}" -} - -[ -f $FLAMEGRAPH_DIR/FlameGraph/stackcollapse.pl ] || fail 'Where is flamegraph?' -#[ which dtrace ] || fail 'Needs DTrace installed' - -read -r "Sampling Hz [800]: " TRACE_CFG_HZ -if [ -z "${TRACE_CFG_HZ}" ]; then - TRACE_CFG_HZ=800 -fi - -read -r "Sampling time [5] sec: " TRACE_CFG_TIME -if [ -z "${TRACE_CFG_TIME}" ]; then - TRACE_CFG_TIME=5 -fi - -TRACE_FILE=dtrace-out.user_stacks -TRACE_FOLD=dtrace-out.fold -TRACE_SVG=dtrace-out.svg -ps - -if [ "$1" = 'pid' ]; then - read -r "PID: " TRACE_CFG_PID - sudo echo 'Sudo!' -else - if [ -f "$1" ] && [ "$1" ]; then - fail 'Usage: ./tools/dtrace-profile.sh <path to program>' - fi - - printf "Executing: " - echo "$@" - sudo echo 'Sudo!' - "$@" & - TRACE_CFG_PID=$! -fi - -TRACE_PROBE="profile-${TRACE_CFG_HZ} /pid == ${TRACE_CFG_PID} && arg1/ { @[ustack()] = count(); } tick-${TRACE_CFG_TIME}s { exit(0); }" - -rm -- $TRACE_SVG || echo 'Skip' - -sudo dtrace -x ustackframes=100 -Z -n "$TRACE_PROBE" -o $TRACE_FILE 2>/dev/null || exit - -perl $FLAMEGRAPH_DIR/FlameGraph/stackcollapse.pl $TRACE_FILE > $TRACE_FOLD || exit -perl $FLAMEGRAPH_DIR/FlameGraph/flamegraph.pl $TRACE_FOLD > $TRACE_SVG || exit - -sudo chmod 0666 $TRACE_FILE -rm -- $TRACE_FILE $TRACE_FOLD
\ No newline at end of file |
