Проблема в следующем: в консольном приложении дохожу дебагом до строчки return 0 в main-е жму ф10(шаг с обходом) меня перебрасывает в дизассемблированный код: 11143B4 add esp,0Ch
011143B7 mov dword ptr [mainret (11170E8h)],eax
011143BC cmp dword ptr [managedapp (11170DCh)],ebx
011143C2 jne $LN36 (11143FBh)
011143C4 push eax
011143C5 call dword ptr [impexit (11150A8h)]
на строчке call программа виснет, при том что все необходимые результаты уже получены и выведены в файл. Ранее никогда с подобным не сталкивался, может кто-нибудь подскажет чем может вызвана подобная проблема и каковы предполагаемые пути её устранения.
После завершения функции
main
выполняется еще некоторая работа. Например, вызываются деструкторы у глобальных переменных и у локальных переменныхmain
.Однако похожие ошибки (падение при завершении) обычно связаны с тем, что вы где-то записали не по тому адресу (например, случился выход за границу массива) и подпортили какую-нибудь таблицу от C Runtime Library, что может привести в том числе к таким последствиям.
Попробуй запустить программу под valgrind. Это инструмент для динамического анализа и если проблема действительно в проезде по памяти, то valgrind это с большой вероятностью заметит. p.s. valgrind замедляет работу примерно в 50-100 раз, поэтому желательно сократить входные данные до минимума.