#!/bin/bash # MIPS GDB 调试快速测试脚本 echo "================================" echo "MIPS translate.c GDB 调试向导" echo "================================" echo "" # 检查 Renode 是否在运行 if pgrep -f Renode.dll > /dev/null; then PID=$(pgrep -f Renode.dll) echo "✅ 检测到 Renode 正在运行 (PID: $PID)" echo "" echo "现在将执行以下操作:" echo "1. 附加 GDB 到 Renode" echo "2. 设置断点在 gen_intermediate_code" echo "3. 等待您在 Renode 中执行 'cpu Step 1'" echo "" echo "⚠️ 重要提示:" echo " 请确保您在 Renode 中已经执行了:" echo " - mach create \"MIPS-Test\"" echo " - machine LoadPlatformDescription @platforms/cpus/mips32_simple.repl" echo " - cpu PC 0x80000000" echo " - cpu A0 5" echo " - cpu A1 3" echo " - sysbus WriteDoubleWord 0x80000000 0x00851020" echo "" echo " 但是 ⚠️ 不要执行 'cpu Step 1' ⚠️" echo "" read -p "按 Enter 继续附加 GDB..." # 创建 GDB 命令文件 cat > /tmp/gdb_commands.txt << 'EOF' set breakpoint pending on break gen_intermediate_code info breakpoints echo \n==============================================\n echo ✅ 断点已设置!\n echo \n现在请切换到 Renode 窗口执行: cpu Step 1\n echo ==============================================\n\n continue EOF echo "" echo "启动 GDB..." sudo gdb -p $PID -x /tmp/gdb_commands.txt else echo "❌ 错误:Renode 没有运行" echo "" echo "请先在另一个终端启动 Renode:" echo " cd ~/source/renode" echo " ./renode" echo "" echo "然后在 Renode Monitor 中执行:" echo " mach create \"MIPS-Test\"" echo " machine LoadPlatformDescription @platforms/cpus/mips32_simple.repl" echo " cpu PC 0x80000000" echo " cpu A0 5" echo " cpu A1 3" echo " sysbus WriteDoubleWord 0x80000000 0x00851020" echo "" echo "⚠️ 不要执行 'cpu Step 1',然后再运行此脚本" exit 1 fi