Тестируемое автономное приложение завершает работу вскоре после того, как я прикрепить с помощью VS2010 SP1 в x86

В Windows 7 x64, когда я подключаюсь в режиме x86 к довольно сложному автономному приложению, оно работает некоторое время, затем воспроизводимо завершается.

MyApp.exe Managed (v4.0.30319)' has exited with code -1073740791 (0xc0000409).

, за которым сразу следует

MyApp.vshost.exe: Managed (v4.0.30319)' has exited with code 0 (0x0).

. Иногда, если он работает нормально, он попадает в мою точку останова, я проверяю состояние, но когда я нажимаю F5, чтобы продолжить работу, приложение завершается таким же образом.

Быстрый поиск кода ошибки говорит мне, что это переполнение буфера стека. Я слышал, что это могло быть вызвано неправильным кодом неуправляемого взаимодействия.

Я могу запустить отладчик ОК (F5), но при автономном запуске и подключении всегда возникает эта проблема.

Есть мысли о том, как я могу ее сузить?

РЕДАКТИРОВАТЬ: Вот стек вызовов, который я вижу здесь на другом компьютере (Windows Server 2008 R2 x64), может быть связан:

clr.dll ! __ crt_debugger_hook ()
clr.dll! ___ report_gsfailure () + 0xeb байт clr.dll!_DoJITFailFast@0 () + 0x8 байт clr.dll! CrawlFrame :: SetCurGSCookie () + 0x2e9c4f байтов
clr.dll! StackFrameIterator :: Init () + 0x60 байт
clr.dll! Thread :: StackWalkFramesEx () + 0x8a байтов
clr.dll! Thread :: StackWalkFrames () + 0x87 байт clr.dll! CNameSpace :: GcScanRoots () + 0xd7 байт clr.dll! WKS :: gc_heap :: mark_phase () + 0xae байтов
clr.dll! WKS :: gc_heap :: gc1 () + 0x7b байт
clr.dll! WKS :: gc_heap :: garbage_collect () + 0x1c1 байт
clr.dll! WKS :: GCHeap :: GarbageCollectGeneration () + 0xba байтов
clr.dll! WKS :: gc_heap :: try_allocate_more_space () + 0x1cd0 байт clr.dll! WKS :: gc_heap :: allocate_more_space () + 0x13 байт
clr.dll! WKS :: GCHeap :: Alloc () + 0x507 байт clr.dll! Alloc () + 0x5a байт
clr.dll! SlowAllocateString () + 0x41 байт
clr.dll! UnframedAllocateString () + 0x11 байт
clr.dll! StringObject :: NewString () + 0x26 байт clr.dll! Int64ToDecStr () + 0x12e байтов
clr.dll! COMNumber :: FormatInt64 () + 0x17e байт mscorlib.ni.dll! 6c60b8e1 ()
[Фреймы ниже могут быть неправильными и / или отсутствовать, символы для mscorlib.ni.dll не загружены]

РЕДАКТИРОВАТЬ2 В сборке приложения x64 все в порядке, проблема появляется только в x86.

5
задан GregC 14 December 2017 в 19:41
поделиться