サードパーティのオープンソースライブラリを使用する関数をいくつか書いています。リリースモードでは、ランダムにはThe programme has stopped working
でクラッシュしますが、その他の情報はありません。だから、私はこの問題をデバッグしようとしています。アサーションにエラーが発生しました。
私がデバッグモードで実行すると、私が手:
vector <bool> iterator not dereferencable
エラーを、そしてそれは私がこれについての情報が存在しているはず
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vector
で
const _Vbase *_Getptr() const
{ // get pointer to base word
#if _ITERATOR_DEBUG_LEVEL == 2
if (this->_Getcont() == 0
|| this->_Myptr == 0
|| 0 <= this->_Valid(0))
{ // report error
_DEBUG_ERROR("vector<bool> iterator not dereferencable");
_SCL_SECURE_OUT_OF_RANGE;
}
にブレイクここで検索すると、ベクトルに要素をあまりにも多く入れると問題が発生する可能性が最も高いことがわかります。
私の質問は:
ブレークポイントはどのように私は、特定の関数がこのエラーの原因となっている見つけることができ、vector
ではなく、私のコード、またはサードパーティのコードで発生したよう?
(サードパーティのライブラリがvector<bool>
とiterator
の両方が散らばっている。
ありがとう。
デバッグする方法101:コールスタック – LogicStuff
ああ、私は参照してください。コールスタックの現在の行には、> \t msvcp140d.dll!00007ffd173f0806()\tが不明です。そしてそれをクリックすると、 'pdbはロードされません。 – anti
サードパーティのライブラリはバグがあり、使用できないようです。 –