プロが教える店舗&オフィスのセキュリティ対策術

デバッガするソフトも対応していないcpuなどに対してはデバッグ出来ないのでしょうか?
デバッグの原理が知りたいです。
どうやって間違いを検知しているのか知りたいです。
また、どうやってデバッグするためのソフトを開発しているのかも知りたいです。うさみみハリケーンなど、どうやって作ったのか知りたいです。

A 回答 (1件)

いろいろと誤解が多くて。




デバッガは「デバグに使うと便利な物」です。
「デバグに使わなければならない」ものではなく、「デバッガが無いとデバグできない」ものでもありません。
逆に「デバグ以外の目的で使う」ことも可能です。(その目的次第ですが)


デバグ作業の基本は次の通りです。
(1)間違いを見つける: AとなるはずがBとなる。
(2)間違いの原因を見つける: Bになってしまうのは、CでなければならないものがDになっているからだ。
(3)間違いの原因を取り除く: Cになるように修正する

実際はここまで単純ではなく、 (1)に対して(2)が複数あったり、(2)が新たな(1)となったりします。


デバッガは、(2)で使うと便利な物です。
・期待した順番に命令を実行しているか?
・変数等が期待した値になっているか?:

・現在実行しているのがどの命令か調べるための逆アセンブラ
・一時的に修正して動作確認するためのエディタ
が機能として備わっていることもあります。


(1)の間違い検出はできません。
あらゆる間違いに対応するのは、理論的に不可能です。

せいぜい、「ここでX=0だったら(どこかで間違えているので)知らせてください」と人間が考えて指示するのが限界です。


> どうやってデバッグするためのソフトを開発しているのか

上記のデバグ手順を、デバッガ以外の方法でやってます。
例えば、経過や変数をprintfするとか(俗に printfデバグ と呼ばれる手法)
それで、簡易デバッガができたら、その簡易デバッガを使ってより高機能なデバッガを開発します。
    • good
    • 0
この回答へのお礼

あの、デバグ作業はソフトに任せるのが良い時と、人間が地道に紙に書いてやる場合が良い時の二つがあるように思えます。

お礼日時:2018/03/20 08:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!