Linia Znajdź Visual C ++ powodująca „Awaria debugowania nie powiodła się”

Próbuję uzyskać program C ++, który działa dobrze, gdy jest skompilowany z gcc, aby działał poprawnie w Visual C ++. Mój problem polega na tym, że otrzymuję następujący błąd:

Debug Assertion Failed!

Program: C:\WINDOWS\SYSTEM32\MSVCP110D.dll
File: c:\program files (x86)\microsoft visual studio 11.0\vc\include\vector
Line: 1140

Expression: vector subscript out of range

Moim prawdziwym problemem jest to, że nie wiem, kiedy i gdzie to się dzieje. Przez naciśnięcie przerwy w oknie błędu jestem tylko przeniesiony do części klasy wektora, gdzie ostatecznie nastąpił wyjątek. Chcę znaleźć miejsce w mojej aplikacji, które faktycznie to spowodowało. Udało mi się zawęzić to do tego bloku kodu:

    for(unsigned int i=0;i<openPolygonList.size();i++)//error somewhere in here
    {
        if (openPolygonList[i].size() < 1) continue;
        for(unsigned int j=0;j<openPolygonList.size();j++)
        {
            if (openPolygonList[j].size() < 1) continue;

            Point diff = openPolygonList[i][openPolygonList[i].size()-1] - openPolygonList[j][0];
            int64_t distSquared = vSize2(diff);

            if (distSquared < 2 * 2)
            {
                if (i == j)
                {
                    polygonList.push_back(openPolygonList[i]);
                    openPolygonList.erase(openPolygonList.begin() + i);
                }else{
                    for(unsigned int n=0; n<openPolygonList[j].size(); n++)
                        openPolygonList[i].push_back(openPolygonList[j][n]);

                    openPolygonList[j].clear();
                }
            }
        }
    }

Po prostu umieszczanie punktów przerwania w każdym wierszu, w którym używany jest wektor, nie jest opcją, ponieważ pętla iteruje tysiące razy i konieczność ciągłego naciskania za każdym razem dosłownie zabiera mi godziny. Czy jest jakiś sposób, w jaki mogę powiedzieć debuggerowi, aby zahamował na odpowiedniej linii po wystąpieniu błędu. Może mi pomóc sprawdzić zmienne i określić, która zmienna jest poza zakresem?

questionAnswers(3)

yourAnswerToTheQuestion