Nu pot să-mi fac debuggerul să nu mai spargă excepțiile de primă șansă

Folosesc Visual C ++ 2003 pentru depanarea unui program de la distanță prin TCP/IP.

Am setat excepția Win32 c00000005, "violare a accesului", pentru a intra în depanator când a fost aruncat. Apoi, am setat-o ​​înapoi la "Utilizați setarea părintelui". Setarea pentru părinte, Excepții Win32, este de a continua atunci când excepția este aruncată.

Acum, când am depanat programul, se rupe de fiecare dată când această excepție este aruncată, forțându-mă să dau clic pe Continue pentru a permite să păstreze depanarea. Cum o să reușesc să opresc ruperea așa?

0
fr hi bn

3 răspunsuri

I'd like to support Will Dean's answer

O încălcare a accesului pare a fi o problemă reală în codul dvs. Nu este ceva la care mă așteptam ca programul C/++ Runtime să fie aruncat și captat intern.

Caracteristica "prima șansă-excepții" este astfel încât să puteți intercepta lucruri care sunt "prinse" în cod, folosind depanatorul și aruncați o privire. Dacă nu există nimic care să "prindă" acea excepție (care are sens, de ce pe pământ ați prinde și ignora încălcările de acces?), Atunci va declanșa depanatorul, indiferent de opțiunile pe care le-ați setat.

0
adăugat
prea rău acest lucru pare să fie cazul. Atunci când se atașează la procese terțe (cum ar fi skype), uneori au fire care se pare că mor cu excepții neobișnuite și nu le puteți prinde. Enervant!
adăugat autor rogerdpack, sursa

Ctrl+Alt+E (or Debug\Exceptions)

De acolo puteți selecta excepțiile care se pot rupe.

0
adăugat

Este aceasta o excepție pe care codul dvs. o va gestiona de fapt dacă nu ați fi difuzat în depanator?

0
adăugat