(/frida.js:445)
at forEach (native)
at loadAll (/frida.js:446)
at _initMain (/frida.js:516)
at _start (/frida.js:529)
at onLeave (/frida.js:573)
```
### 🔄 热重载日志
```
[2025-9-11 13:11:47.812] [INFO] ================ Reloading ALL modules ================
[2025-9-11 13:11:47.812] [INFO] [Module] 'GM指令' dispose completed.
[2025-9-11 13:11:47.812] [INFO] [Module] 'GM指令' unloaded successfully.
[2025-9-11 13:11:47.812] [INFO] [Module] '登入登出' dispose completed.
[2025-9-11 13:11:47.812] [INFO] [Registry] Interceptor detached from '0x86C4E50' as no modules are listening.
[2025-9-11 13:11:47.812] [INFO] [Module] '登入登出' unloaded successfully.
[2025-9-11 13:11:47.812] [INFO] [Module] 'abyss-mode' dispose completed.
[2025-9-11 13:11:47.812] [INFO] [Registry] Interceptor detached from '0x085a0954' as no modules are listening.
[2025-9-11 13:11:47.813] [INFO] [Module] 'abyss-mode' unloaded successfully.
[2025-9-11 13:11:47.813] [INFO] [Module] 'linas' dispose completed.
[2025-9-11 13:11:47.813] [INFO] [Registry] Original function at '0x081db4c4' was restored (was replaced by 'linas').
[2025-9-11 13:11:47.813] [INFO] [Module] 'linas' unloaded successfully.
[2025-9-11 13:11:47.815] [INFO] [Module] 'GM指令' initialization completed.
[2025-9-11 13:11:47.815] [INFO] [Module] 'GM指令' loaded successfully.
[2025-9-11 13:11:47.816] [INFO] [Module] '登入登出' initialization completed.
[2025-9-11 13:11:47.817] [INFO] [Registry] New Interceptor attach at '0x86C4E50' by module '登入登出'.
[2025-9-11 13:11:47.817] [INFO] [Module] '登入登出' loaded successfully.
[2025-9-11 13:11:47.818] [INFO] [Module] 'abyss-mode' initialization completed.
[2025-9-11 13:11:47.818] [INFO] [Registry] New Interceptor attach at '0x085a0954' by module 'abyss-mode'.
[2025-9-11 13:11:47.818] [INFO] [Module] 'abyss-mode' loaded successfully.
[2025-9-11 13:11:47.819] [INFO] [Module] 'linas' initialization completed.
[2025-9-11 13:11:47.819] [INFO] [Registry] New Interceptor replace at '0x081db4c4' by module 'linas'.
[2025-9-11 13:11:47.819] [INFO] [Module] 'linas' loaded successfully.
[2025-9-11 13:11:47.819] [INFO] ================ ALL modules reloaded ================
```
### 🎨 日志级别说明
| 级别 | 图标 | 说明 | 使用场景 |
|------|------|------|----------|
| `INFO` | ℹ️ | 一般信息 | 系统状态、模块加载 |
| `WARN` | ⚠️ | 警告信息 | 非致命错误、性能提醒 |
| `ERROR` | ❌ | 错误信息 | 模块加载失败、Hook异常 |
> **💡 日志管理提示:**
> - 日志文件按日期、频道自动分割,便于管理和查找
## ⚠️ 注意事项
| 项目 | 说明 |
|------|------|
| 🎯 **内存地址** | Hook地址需要根据实际游戏版本进行调整 |
| 🛡️ **权限验证** | 所有GM指令都需要验证角色ID是否在权限列表中 |
| 💾 **资源管理** | 使用资源后需要及时释放 |
| 🐛 **错误处理** | Hook函数中的异常会被捕获并记录到日志 |
| 🏗️ **模块设计** | 基础模块和功能模块的划分可根据开发习惯调整,也可以全部放在功能模块中 |
| 🔗 **API引用** | 建议使用`context`命名空间引用基础模块API,避免解构赋值导致的热重载问题 |
| ⚠️ **基础模块引用** | **基础模块之间不推荐相互引用**,特殊情况必须引用时需调整配置文件中的加载顺序 |
| 🧊 **freeze属性** | 所有模块都支持`freeze`属性,只有将`freeze`从`true`改为`false`时需要单独重载 |
| 📝 **模块名称** | 配置文件中的`name`字段很重要,GM重载模块就是根据这个`name`来识别的 |
---
**DOF Modular-Frida** - 基于mini-require核心的DOF服务端功能扩展框架
*本文档基于项目当前版本编写,如有更新请参考最新代码实现。*