2024年6月1日土曜日

MochiOS開発記@デバッグログ強化検討

 MochiKernelのデバッグログは下記情報を持っている。

・ログ出力したモジュール-サブモジュール(つまりひとつのソースファイル)のID

・ログ出力した行数

・文字列


デバッグログ種別やレベルなどは持たせていなくて、好き勝手していた。

いざ不具合があると情報が足りなくなるし、不具合がないと不要なログで埋め尽くされて見たいものが見れなくなる、ということに悩まされてきたので、種別の概念を追加することにする。


大体、世の中のシステムログ種別は以下のような感じか(超適当)

種別 概要
emergency システムが使用できなくなった系
alert 対処しないとまずい系
critical 致命的で対処しようがない系
error エラー全般
warning 警告全般
notice エラーでも警告でもないがちょっとあやしい系
informational なんか処理したよ系
debug プログラムデバッグ情報系

参考にしてこんな感じにしよう。(全然参考にしてない)
種別 概要
abort あぼーと。もう何もできない。死んだ。
error 想定外のエラー。処理を続けられないので中断。
warning 想定内のエラー。処理を続けられないので中断。
info なんか処理した。頻度低(HW割込みとかタスクスイッチ系はダメ)。
trace コードここ通ったよ。頻度低(HW割込みとかタスクスイッチ系はダメ)。
temp デバッグ中に使う専用。残さない。

種別ごとに有効化マクロ定義しとこ。

0 件のコメント:

コメントを投稿

Rust@naked関数

Rust@naked関数 multiboot仕様でブートローダを自作せずGRUBから自作カーネル(もどき)を起動できたので、起動情報も色々受け取りたい。multiboot準拠していれば、起動直前にブートローダがレジスタEAXにマジック値を...