デバック作業の手順について
最近仕事でデバック作業に時間がかかりすぎている事がずっと気になっていたので、一回デバックの正しい流れとかあるのか調べてみた。
上記記事を読んで思ったのは、やはりデバック手順をルーチン化することも大切なのではという事です。
- 原因究明
- 再現手順の整理
- 再現箇所と再現時の関数入力、出力値の確認
- ダメな場合は1に戻る
最低限これだけはやっておくべきなのかとも思いまた。
後、確認方法は今もやっている事ですが、デバックモードで気になるところにブレークポイントをかけ、ステップイン、アウトで順次処理を見ていくのが一番いいのかなと思います。
気にすべきことは上記だけかなと思ったら、ほかの記事を読んで
「スタックトレース」なる言葉を発見
デバッグのヒント教えます(2):スタックトレースからデバッグのヒントを読み取る - @IT
エラーコードには”エラーが発生するまでの過程”が記されていて、それを「スタックトレース」と呼ぶらしいです。
(今までエラーコード自体を検索かけてどんなエラーか認識するくらいしかしてなかったです…)
この際大切なことは”自分の作った関数に関する記述”。今まで動いていたシステムに組み込んだ自分の関数等はバグを生む原因になり得やすく、注目すべきという事だろうか。
どの関数が呼ばれた後にエラーが出たのか等わかればよりスムーズにデバックが進みますね。今後はエラーメッセージをもっと読むように心掛けるべきですね
しかし自分はファームウェアを扱っているので、これだけでなくハード面も気にしてオシロスコープの扱い方も知る必要があるのかなと思いました。
安いオシロとかないんかね…