ブレークポイント
ブレークポイント
(ブレイクポイント から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/06 00:51 UTC 版)

ブレークポイント(英: breakpoint)は、ソフトウェア開発のデバッグ作業において実行中のプログラムを意図的に一時停止させる箇所である。ENIACのプログラマであるベティ・ホルバートンが考案した[1]。
概要
ブレークポイントの指定機能は多くのデバッガに備えられており、これを用いることでプログラムの任意箇所への到達を自動的に捕捉できる。ブレークポイントでの停止後、プログラマは通常のデバッグ作業同様に実行環境(メモリ、レジスタ、ログ、ファイルなど)を観察し、プログラムが期待通りに機能しているかどうかを判断する。
通常、ブレークポイントにはプログラムの実行を中断させるかどうかを決定する1つ以上の条件を設定できる。
最も一般的なブレークポイントは、指定した命令を実行する前にプログラムの実行を停止する。これを「命令ブレークポイント」などと呼ぶ。
また、メモリの特定領域の読み込み、書き込み、更新をトリガーとして停止させる場合もある。これを「データブレークポイント」あるいは「ウォッチポイント」などと呼ぶ。
他にも時刻を指定する方式のブレークポイント、キー入力などをトリガーとするブレークポイントがある。
CPUの多くはブレークポイントをハードウェアでサポートしている。このハードウェアには、分岐遅延スロットにある命令にはブレークポイントを設定できないなどといった制限がある場合もある。そのような制限はマイクロアーキテクチャに起因するもので、プロセッサによって様々である。大まかに言えば、ブレークポイントに到達すると例外を発生し、それによってデバッグ対象プロセスを実行できない状態に遷移させ、デバッガプロセスに制御を移す。
ハードウェアがサポートしていない場合、デバッガでソフトウェア的にブレークポイントを実装する必要がある。命令ブレークポイントの場合、単にブレークポイントを設定したい命令を別の命令(例、x86の場合、ブレークポイント用途の INT3 命令)に置換すればよい[2]。一方、データブレークポイントを純粋にソフトウェアで実現しようとすると、デバッグ対象アプリケーションの性能が大幅に低下することがある[3]。ただし、性能の極端な低下はCPUのシングルステップ実行によりデータブレークポイントにおけるデータ書き換えを一命令の実行ごとに検出する実装の場合に生じる。ページング方式の仮想記憶をサポートしているOSであれば、データ書き換えの検出は対象データを含むページを書き込み禁止にしてトラップを発生させることによっても実装可能である。仮想記憶自身でも同様の機能が必要なことから、この方式は性能低下が少ない。
プログラミング言語の実装によっては、デバッグ機能を他のプログラムに公開している場合もある。例えば、FORTRANの一部の方言には AT
文があるが、これは元々は命令ブレークポイントのためのものだった。Pythonには Python プログラムからアクセス可能なデバッガが実装されている[4]。このような機能を乱用するとcomefrom文のような機能が実装できる[5]。
脚注・出典
- ^ Abbate, Janet (2012), Recoding Gender: Women's Changing Participation in Computing, MIT Press, p. 32, ISBN 9780262018067
- ^ 田辺 1983, p. 82.
- ^ GDB Internals -- Watchpoints
- ^ Python Library Reference: The Python Debugger
- ^ entrian.com - goto and comefrom for Python
参考文献
- 田辺皓正編著『マイクロコンピュータシリーズ15 8086マイクロコンピュータ』丸善株式会社、1983年4月30日。
ブレイクポイント
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/12/03 08:41 UTC 版)
「最小発育阻止濃度」の記事における「ブレイクポイント」の解説
測定したMICは米国の臨床検査標準協会(CLSI)の基準に基づき評価をする。CLSIでは抗菌薬・菌種ごとに基準となる数値を定めており、その値よりも測定したMIC値が低い場合にはS(感受性)、高いときにはR(耐性)と判定する。この境界となる抗菌薬濃度をブレイクポイントと称する。ここでSと判定を受けても、①CLSIのブレイクポイントはあくまで米国人を対象としたものであること、②抗菌薬の各臓器への移行能は考慮されていないこと、③静菌的な作用を示す抗菌薬ではMICと殺菌作用を示す濃度に差があり、菌を死滅させることが難しい等の理由から、実際に臨床効果が十分にあらわれるかどうかは分からない。そこで、日本化学療法学会では独自に臨床的ブレイクポイントを設定している。これは各種抗菌薬の特性や組織移行能、体内動態を考慮しており、疾患別に定められている。
※この「ブレイクポイント」の解説は、「最小発育阻止濃度」の解説の一部です。
「ブレイクポイント」を含む「最小発育阻止濃度」の記事については、「最小発育阻止濃度」の概要を参照ください。
- ブレイクポイントのページへのリンク