Mam tutaj problem typu „Kot Schroedingera” - mój program (właściwie zestaw testowy dla mojego programu, ale program mimo wszystko) ulega awarii, ale tylko wtedy, gdy jest zbudowany w trybie wydania i tylko wtedy, gdy jest uruchamiany z wiersza poleceń . Poprzez debugowanie jaskiniowców (tj. Nieprzyjemne komunikaty printf () w każdym miejscu), określiłem metodę testową, w której kod ulega awarii, chociaż niestety rzeczywista awaria wydaje się mieć miejsce w jakimś destruktorze, ponieważ ostatnie wiadomości śledzenia, które widzę, znajdują się w inne destruktory, które działają czysto.
Kiedy próbuję uruchomić ten program w Visual Studio, nie ulega awarii. To samo dotyczy uruchamiania z WinDbg.exe. Awaria występuje tylko podczas uruchamiania z wiersza poleceń. Dzieje się to w systemie Windows Vista, przy okazji, i niestety nie mam teraz dostępu do komputera XP, aby przetestować.
Byłoby naprawdę miło, gdybym mógł zmusić system Windows do wydrukowania śladu stosu lub czegoś innego niż zwykłe zakończenie programu tak, jakby zakończył się czysto. Czy ktoś ma jakąś radę, jak mogę uzyskać tutaj bardziej znaczące informacje i miejmy nadzieję, że naprawię ten błąd?
Edycja: Problem był rzeczywiście spowodowany przez tablicę poza granicami, którą opisuję bardziej w tym poście . Dziękuję wszystkim za pomoc w znalezieniu tego problemu!