ブレークポイント
ハードウェアがサポートしていない場合、デバッガでソフトウェア的にブレークポイントを実装する必要がある。命令ブレークポイントの場合、単にブレークポイントを設定したい命令を別の命令(例、x86の場合、ブレークポイント用途の INT3 命令(英語版))に置換すればよい。一方、データブレークポイントを純粋にソフトウェアで実現しようとすると、デバッグ対象アプリケーションの性能が大幅に低下することがある。ただし、性能の極端な低下はCPUのシングルステップ実行によりデータブレークポイントにおけるデータ書き換えを一命令の実行ごとに検出する実装の場合に生じる。ページング方式の仮想記憶をサポートしているOSであれば、データ書き換えの検出は対象データを含むページを書き込み禁止にしてトラップを発生させることによっても実装可能である。仮想記憶自身でも同様の機能が必要なことから、この方式は性能低下が少ない。
プログラミング言語の実装によっては、デバッグ機能を他のプログラムに公開している場合もある。例えば、FORTRANの一部の方言には AT 文があるが、これは元々は命令ブレークポイントのためのものだった。Pythonには Python プログラムからアクセス可能なデバッガが実装されている。このような機能を乱用するとcomefrom文のような機能が実装できる。