Thread View: alt.pl.comp.lang.csharp
4 messages
4 total messages
Started by Miroo
Mon, 19 May 2014 06:58
Dziwna sprawa - bez optimize program nie działa
Author: Miroo
Date: Mon, 19 May 2014 06:58
Date: Mon, 19 May 2014 06:58
25 lines
2290 bytes
2290 bytes
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") Próbowałem debugować na piechotę i wyszło na to, że błąd pojawiał się podczas korzystania z ResourceManagera (wczytywanie ikonek do przycisków). Po zakomentowaniu tego kodu wysypało się przy przypisywaniu DataGridView.DataSource. Formatki bez DataGridView pokazywały się. Aplikacja korzysta z kilku bibliotek skompilowanych dla NET2.0, do których nie mam źródeł. Oczywiście mogę włączyć flagę "optimize" i udawać, że jest wszystko w porządku, ale wolałbym jednak namierzyć przyczynę problemu. Niestety pomysły mi się skończyły. Może grupowicze coś doradzą? Pozdrawiam
Re: Dziwna sprawa - bez optimize program nie działa
Author: dee
Date: Mon, 19 May 2014 20:42
Date: Mon, 19 May 2014 20:42
38 lines
2467 bytes
2467 bytes
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? > > Próbowałem debugować na piechotę i wyszło na to, że błąd pojawiał się > podczas korzystania z ResourceManagera (wczytywanie ikonek do > przycisków). Po zakomentowaniu tego kodu wysypało się przy przypisywaniu > DataGridView.DataSource. Formatki bez DataGridView pokazywały się. > > Aplikacja korzysta z kilku bibliotek skompilowanych dla NET2.0, do > których nie mam źródeł. > > Oczywiście mogę włączyć flagę "optimize" i udawać, że jest wszystko w > porządku, ale wolałbym jednak namierzyć przyczynę problemu. Niestety > pomysły mi się skończyły. Może grupowicze coś doradzą? > > Pozdrawiam -- dee
Re: Dziwna sprawa - bez optimize program nie działa
Author: Miroo
Date: Tue, 20 May 2014 07:24
Date: Tue, 20 May 2014 07:24
33 lines
2385 bytes
2385 bytes
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
Re: Dziwna sprawa - bez optimize program nie działa
Author: dee
Date: Thu, 29 May 2014 20:08
Date: Thu, 29 May 2014 20:08
40 lines
2456 bytes
2456 bytes
Miroo wrote: > 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 Nie mam pojęcia co może być problemem bez dostępu do kodu niestety... -- dee
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads