タグ

*techniqueとブレークポイントに関するkanbayashiのブックマーク (1)

  • ブレークポイントの実装 - Plan9日記

    ブレークポイントは,デバッギ(デバッグ対象)からデバッガへ処理を遷移させるための仕掛けである.基的な動作の流れを書くと,まず,止めたい命令をメモリ上に保存しておいて,ブレークポイント命令(x86ならばINT 3)に置き換える.デバッギを実行すると,ブレークポイント命令を実行した時点で例外が発生するので,(カーネル経由で)デバッガのハンドラに処理が移る.ユーザがcont()などで実行の再開を要求すると,前に保存しておいた命令に書き戻し,デバッギの実行を再開する. acidでこの辺をどう実装していくのか見ていこうと思う.gdbの実装がどうなっているのかわからないが,Cでインタプリタのコードをゴリゴリ書いてあるんだと思う.acidはわずかなプリミティブ以外は専用のスクリプト言語で書かれている.ブレークポイントの設定(bpset)や解除(bpdel)もスクリプト言語で書かれている. bpset(

    ブレークポイントの実装 - Plan9日記
  • 1