ランタイムライブラリ
通例、共有ランタイムライブラリは再配布可能 (redistributable) パッケージまたはOSの更新プログラムとして再配布先のコンピュータに導入することが可能であるが、このパッケージや更新プログラムによって導入できるランタイムライブラリはエンドユーザー向け(リリースビルド用)のランタイムライブラリだけであり、開発者向け(デバッグビルド用)のランタイムライブラリは含まれない。このため誤ってデバッグ用のランタイムライブラリとリンクしたプログラムを配布すると異常終了を発生させることになる。
特に問題が発生しやすくなる要因としては下記のものがある。
開発用のコンピュータに、コンパイラをはじめとする開発ツールをインストールすると、暗黙のうちにデバッグ用の共有ランタイムライブラリがインストールされるため、デバッグ用のランタイムライブラリの存在を自覚しづらい。
デバッグオプションの有無だけでリリース用とデバッグ用が切り替わるため、どちらのライブラリを使っているか自覚しづらい。
リリース用のランタイムライブラリをリンクしたプログラムと、デバッグ用のランタイムライブラリをリンクしたプログラムの間に、目に見える大きな差がない。
対策としては、開発ツールがインストールされていないコンピュータ上で必ず動作確認することが挙げられる。