W dniu 2014-05-19 22:42, dee pisze:
>
> Miroo wrote:
>> Witam
>> Odziedziczyłem pewną aplikację desktopową. Ponieważ pojawiła się taka
>> potrzeba (w sumie najwyższy czas) przestawiłem aplikację z .NET 2.0 na
>> 4.0. I pojawił się problem.
>> Aplikacja działa bez problemu z poziomu VS2010, działa bez problemu z
>> exe, gdy skompiluje się ją z flagą "Optimize code". Natomiast wywala się
>> przed pokazaniem formatki logowania, gdy skompiluje się ją bez tej
>> flagi. Aplikacja jest kompilowana z targetem x86, ponieważ korzysta z
>> COMów 32 bitowych. Gdy się ją skompiluje z targetem Any CPU - działa.
>>
>> Kod wyjątku: 0xc0000409 (wszystko mówiące "unknown exception")
>
> 0xc0000409 = STATUS_STACK_BUFFER_OVERRUN
> Coś pisze po nieswojej pamięci (n.p. wrzuca za dużo).
>
> Jak jest zrealizowana interakcja z COMami? Custom C# wrappers z unsafe
> code? - może gdzieś źle ustawiane są rozmiary przekazywanych
> struktur/buforów?
Z COMami współpracuje sporadycznie, na żądanie. Błąd występuje bez
wywoływania COMów.
Odrzuciłbym też lokalne problemy z
systemem/frameworkiem/VS/konfiguracją, ponieważ u kolegi również się
wykłada.
Aha, błąd jest zgłaszany w module clr.dll, nie da się go przechwycić w
try/catch - aplikacja się po prostu wykłada.
Pozdrawiam