bochs 中文文档 下载 App

日志输出与级别——控制 Bochs 在什么事件上记录、记录到哪里

六个级别一条线

Bochs 在运行时会产生不同严重程度的事件。从低到高:

关键字含义典型触发
debug:调试级模拟内部状态变化,极多
info:信息级正常的状态变化(设备初始化、磁盘 I/O)
warn:警告级非致命异常(访问了不存在的 MSR、磁盘读写重试)
error:错误级可恢复错误(DMA 冲突、中断丢失)
panic:致命级不可恢复错误(BIOS 签名错误、CPU triple fault)
log:日志文件指定输出路径

action 参数

每个级别后面可以跟 action=xxx 决定 Bochs 遇到这种事件时做什么:

action 值含义
fatal终止 Bochs
ask弹出对话框问用户怎么办(ask/continue/fatal)
warn显示警告对话框但继续
report打印到日志文件或控制台
ignore什么都不做,静默跳过

推荐配置

OS 开发场景

log: bochsout.txt
panic: action=ask
error: action=report
warn: action=report
info: action=report
debug: action=ignore

panic 用 ask——OS 内核崩了(triple fault、segmentation fault 冒泡)时 Bochs 会停住,你可以选择 continue(调试器继续跑)或 fatal(退出)。error 和 warn 写到日志文件方便事后排查。debug 忽略——量太大、通常没用。

经典系统运行场景

log: bochsout.txt
panic: action=ask
error: action=report
warn: action=ignore
info: action=ignore
debug: action=ignore

只关心致命错误和可恢复错误,warn/info/debug 全忽略避免刷屏。

静默模式

log: /dev/null          # Linux / macOS
log: NUL                # Windows
panic: action=fatal
error: action=ignore
warn: action=ignore
info: action=ignore
debug: action=ignore

完全不输出日志,只在 panic 时终止。适合批量脚本运行。

日志里通常能看到什么

info 级别会记录:

warn 级别会记录:

error 级别:

panic 级别:

多级别串联

某些级别可以写多个 action 用逗号分隔:

panic: action=ask, report

先报告再询问。但实践中很少这么用——单级别单 action 更清晰。

日志文件位置

log: 写相对路径,文件会创建在 Bochs 启动时的当前工作目录。用绝对路径可以避免记错位置。在 bochsdbg 下,panic 事件的 ask 对话框里也会显示当前日志文件的完整路径,方便定位。