# 寻找 Jingle Town：在没有调试符号时调试 N64 游戏

> Snowboard Kids 2 反编译项目的一篇操作说明：在一致性构建仍无法加入调试信息时，把 gdb-multiarch 接到 Ares 模拟器上。文中按 ELF 符号名在函数处设断点，再手动读取结构体中的一个字节，检验它是否决定加载哪个关卡 overlay。这是在运行时检验反编译假设的简短方法记录，而非重建成果。

- 类型：学习资源
- 目标：游戏
- 类别：学习资源
- 关联：学习资源
- 来源复核于：2026-10-18
- 收录于：2026-10-19
- 原始资源：<https://blog.chrislewis.au/finding-jingle-town-debugging-an-n64-game-without-symbols/>
- 目录页面：<https://awesomerea.org/zh/resources/finding-jingle-town-n64-debugging/>
- 记录 JSON：<https://awesomerea.org/resources/finding-jingle-town-n64-debugging/record.json>
- 英文版：[English](https://awesomerea.org/resources/finding-jingle-town-n64-debugging/index.md)

## 使用条件与局限

- 文章日期为 2025 年 12 月 23 日，只回答一个问题：Snowboard Kids 2 进入关卡时如何选择要加载的关卡 overlay。文中在一个按索引访问 16 个 overlay 的函数处设断点，并读取 Sunny Mountain、Turtle Island 和 Jingle Town 三个关卡对应的候选字节（0、1、2）。其他关卡及设置该索引的代码均未追踪。
- 照做需要 Snowboard Kids 2 的 N64 ROM（原版或由反编译项目重建的版本，文中认为两者逐字节一致），以及反编译项目生成的 build/snowboardkids2.elf 以提供函数名。文章未说明如何取得或构建二者。
- 所用工具为设定 mips:4000 架构的 gdb-multiarch，以及开启调试功能的 Ares，二者通过 Ares 的 GDB 远程调试支持连接；若 GDB 运行在另一台主机上（如作者使用的 x86 Ubuntu 服务器），可另用 SSH 反向隧道。文章解释，在依赖绝对地址的构建中加入 -g 会使各段偏移，游戏通常无法启动，因此只能手动计算指针偏移来读取结构体字段。
- 结果是作者在一次调试过程中的观察。文章称该流程非常依赖手工操作，并说明 gdbgui 未能在该环境下正常使用。文中自动生成的名称后来已更改：在所审阅的提交 7600c79 中，symbol_addrs.txt 将 0x8003D560 命名为 initRace，将 0x800AFE8C 命名为 gGameSessionContext，脚注链接的 src/3E160.c 也已不在源码树中。
- 文章记录的是手动调试。所审阅提交中的反编译仓库没有许可证文件，游戏 ROM 及其内容仍受各自权利约束。

## 一手来源

1. <https://blog.chrislewis.au/finding-jingle-town-debugging-an-n64-game-without-symbols/>
2. <https://github.com/cdlewis/snowboardkids2-decomp/blob/7600c79d3909fce344435dcccbb6ad3bc2aad34e/README.md>
3. <https://github.com/cdlewis/snowboardkids2-decomp/blob/7600c79d3909fce344435dcccbb6ad3bc2aad34e/symbol_addrs.txt>

## 同分区更多条目：文档与学习资源

- [JPCERT/CC：攻击服务器上的 APK 解析与 API 探测](https://awesomerea.org/zh/resources/jpcert-apk-api-attack-infrastructure-report/index.md) · 学习资源
- [逆向工程教程（mytechnotalent）](https://awesomerea.org/zh/resources/mytechnotalent-reverse-engineering/index.md) · 学习资源
- [Z0FCourse 逆向工程课程](https://awesomerea.org/zh/resources/z0f-reverse-engineering-course/index.md) · 学习资源
- [OWASP 移动应用安全测试指南（MASTG）](https://awesomerea.org/zh/resources/owasp-mastg/index.md) · 学习资源
- [Decompilation Wiki 反编译维基](https://awesomerea.org/zh/resources/decompilation-wiki/index.md) · 学习资源
- [Frontkick 与 Rikugan：基于 CREBench 的智能体对比](https://awesomerea.org/zh/resources/frontkick-rikugan-crebench-comparison/index.md) · 学习资源

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
