タグ

ブックマーク / w0.hatenablog.com (1)

  • デバッグprintfの仲間達

    printfは複雑な挙動をするので信頼できないことが多い。おいつめられると以下のようなものをprintfがわりに使う。 デバッグwhile(1) コードが止まるかどうかを判定することでフローを確認する。マシン語数命令で完結するのでかなり信頼できる。OS無し環境でも使えるのが嬉しい。Windows環境下ではプログラムを終了させるのが面倒。副作用が無いので時間かかっているだけなのか判定できない。 デバッグ *(int*)0 = 0; (デバッグSEGV) プログラムが終了するかどうかを判定してフローを確認する。さらにcoreを吐かせたり、JITデバッグしたりしやすい。ライブラリを必要としないので、abortよりも信頼できるしバックトレースもきれいに出る。が、Windows GUIはたまに例外を握り潰してることがある気がする(やめてくれ) デバッグexit(1) プログラムが終了するかどうかでフ

    デバッグprintfの仲間達
    wwolf
    wwolf 2015/06/19
    デバッグexitはどうしようもない糞コードの解析で多様した記憶がある
  • 1