Приветствую Всех! Я пишу программу, которая в нескольких потоках делает весьма объемные вычисления (неважно какие, важно то, что они занимают достаточно много времени и памяти). При запуске, этак потоков 100. Програма почему-то тихо и бесшумно сдыхает. Выражается это тем, что после вызова WaitForMultitpleObjects, fprintf(stderr, "done") ничего не пишет на экран. А %errorlevel% после смерти равен == 0xC0000027 или 0xC0000029, что означает STATUS_UNWIND и STATUS_INVALID_UNWIND_TARGET соответственно. Вопрос: почему происходит "бесшумный" выход? Насколько я понимаю, это коды эксепшенов, но никиких месадж боксов с Abnormal Termination и подобными не вылазят! Очень нужно знать, помогите кто сможет... Заранее большое спасибо!!
Исключение возникает внутри обработчика исключения при раскрутке стека в функции RtlUnwind. Скорее всего, ты не правильно используешь SEH.
А насколько SEH можно неправильно использовать, чтобы он делал "безвозмездный выход"? Приведи, пожалуйста, пример или просто объясни.
Во-во!!! Вот примерно эта же ситуация, запускаю допустим с cmd.exe мою прогу, ставлю: bpx ExitProcess в айсе, и получаю примерно такой стек: kernel32!ExitProcess msvcrt!.exit cmd!.text+0x111 Откуда видно, что ExitProcess'ом от моей проги и не пахнет! Только почему-то %errorlevel% от твоей программы теперь равен 0xC0000005, i.e. STATUS_ACCESS_VIOLATION, а что может быть у меня????????