diff options
Diffstat (limited to 'scripts/debug-kernel.py')
| -rwxr-xr-x | scripts/debug-kernel.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/scripts/debug-kernel.py b/scripts/debug-kernel.py index c794ad6..c675045 100755 --- a/scripts/debug-kernel.py +++ b/scripts/debug-kernel.py | |||
| @@ -2,20 +2,22 @@ | |||
| 2 | GDB Python script for debugging raisernics under QEMU. | 2 | GDB Python script for debugging raisernics under QEMU. |
| 3 | 3 | ||
| 4 | Usage: | 4 | Usage: |
| 5 | 1. Terminal 1: ./tools/qemu.sh --debug | 5 | 1. Terminal 1: ./scripts/run.sh --debug (GDB stub on :1234) |
| 6 | 2. Terminal 2: gdb -x tools/debug-kernel.py target/x86_64-unknown-uefi/debug/raisernics.efi | 6 | Add PROFILE=debug for line-level symbols (slower guest). |
| 7 | 2. Terminal 2: gdb -x scripts/debug-kernel.py | ||
| 7 | """ | 8 | """ |
| 8 | 9 | ||
| 9 | import gdb | 10 | import gdb |
| 10 | import os | 11 | import os |
| 11 | 12 | ||
| 12 | # Find the kernel binary | 13 | # Find the kernel binary (debug profile preferred, release as fallback) |
| 13 | script_dir = os.path.dirname(os.path.abspath(__file__)) | 14 | script_dir = os.path.dirname(os.path.abspath(__file__)) |
| 14 | project_root = os.path.dirname(script_dir) | 15 | project_root = os.path.dirname(script_dir) |
| 15 | binary = os.path.join( | 16 | candidates = [ |
| 16 | project_root, | 17 | os.path.join(project_root, "target/x86_64-unknown-uefi/debug/rsdos.efi"), |
| 17 | "target/x86_64-unknown-uefi/debug/raisernics.efi" | 18 | os.path.join(project_root, "target/x86_64-unknown-uefi/release/rsdos.efi"), |
| 18 | ) | 19 | ] |
| 20 | binary = next((c for c in candidates if os.path.exists(c)), candidates[0]) | ||
| 19 | 21 | ||
| 20 | # Connect to QEMU's GDB stub | 22 | # Connect to QEMU's GDB stub |
| 21 | gdb.execute("target remote :1234") | 23 | gdb.execute("target remote :1234") |
