Warsztat - Programowanie gier

Marzec 15, 2010, 08:48:02 *
Witamy, Gość. Zaloguj się, lub zarejestruj proszę.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności: Warsztat, Regulamin forum, #warsztat, Wiki, FAQ, NoPaste, Mapa
 
   Strona główna   Pomoc Szukaj Zaloguj się Rejestracja  
Strony: [1]
  Drukuj  
Autor Wątek: VS 2005 C++ problem z Release  (Przeczytany 873 razy)
_jUNIOR.
Newbie
*

wiadomości: 31


Zobacz profil
« : Październik 15, 2008, 13:38:25 »

Witam,
Program kompiluje się bez błędów, występuje jedynie parę warningów odnośnie funkcji str***:
Warning   1   warning C4996: 'strlwr' was declared deprecated itp.
Obie wersje release i debug działają w trybie debugowania (Debug -> Start Debugging) -release ładnie śmiga, no a debug jakto debug fps 6 razy mniejszy Tongue (dla mnie wszystko OK).
Gdy odpalam bez debugowania (Debug -> Start Without Debug) wersja debug działa tak samo, a wersja release się "sypie" -odpala się Visual Studio Just-In-Time Debugger "An unhandled win32 exception occurred in TheGame.exe[2528]". Gdy chcę debugować to ładnie się odpala VS tylko po to, aby po chwili sypnąć błędem ;/ "Microsoft Visual Studio has encountered a problem and needs to close.".

Siedzę już nad tym dość długa, sprawdzam konfiguracje kompilacji, próbuje odpalać Release NIE przez VS i dalej to samo.
Pytanie:
Jaki wpływ ma opcja debugowania na wersję Release programu? Czy mam coś źle w konfiguracji czy gdzie leży problem? Jakiej konfiguracji używacie?


Trochę info o konfiguracji:
Kompilacja Release:
Kod:
]
/O2 /GL /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /EHsc /MD /Fo"Release\\" /Fd"Release\vc80.pdb" /W3 /nologo /c /Wp64 /Zi /TP /errorReport:prompt
Linger Release:
Kod:
/OUT:"D:\...\TheGame08.10.15\Release\TheGame.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:"Release\TheGame.exe.intermediate.manifest"
/DEBUG /PDB:"d:\...\thegame08.10.15\release\TheGame.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /IMPLIB:"C:\Program Files\Microsoft DirectX 9.0 SDK (April 2005)\Include"
/MACHINE:X86 /ERRORREPORT:PROMPT lib\glut32.lib lib\OpenGL32.lib lib\GlU32.lib lib\GlAux.Lib lib\dinput.lib lib\dinput8.lib lib\dxguid.lib 
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

Kompilacja Debug:
Kod:
/Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Gm /EHsc /RTC1 /MDd /Fo"Debug\\" /Fd"Debug\vc80.pdb" /W3 /nologo /c /Wp64 /ZI /TP /errorReport:prompt
Linker Release:
Kod:
/OUT:"D:\...\TheGame08.10.15\Debug\TheGame.exe" /INCREMENTAL /NOLOGO /MANIFEST /MANIFESTFILE:"Debug\TheGame.exe.intermediate.manifest"
/DEBUG /PDB:"d:\...\TheGame08.10.15\debug\TheGame.pdb" /SUBSYSTEM:WINDOWS /IMPLIB:"C:\Program Files\Microsoft DirectX 9.0 SDK (April 2005)\Include"
/MACHINE:X86 /ERRORREPORT:PROMPT lib\glut32.lib lib\OpenGL32.lib lib\GlU32.lib lib\GlAux.Lib lib\dinput.lib lib\dinput8.lib lib\dxguid.lib 
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

Przy odpalaniu bez VS dostarczam pliki:
glut32.dll
Microsoft.VC80.CRT.manifest
msvcm80.dll
msvcp80.dll
msvcr80.dll
zawartosc manifestu:
Kod:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<file name="msvcr80.dll"/>
<file name="msvcp80.dll"/>
<file name="msvcm80.dll"/>
</assembly>

// edit by bies
Łamanie wierszy -- rozciągały stronę.
« Ostatnia zmiana: Październik 15, 2008, 14:22:16 wysłane przez bies » Zapisane
Złośliwiec
Member2000
*******

wiadomości: 2844


Zobacz profil WWW
« Odpowiedz #1 : Październik 15, 2008, 13:49:58 »

90% przypadków działania wersji Debug przy równoczesnym wysypywaniu się Release to niezainicjalizowane zmienne, więc sprawdź najpierw pod tym kątem Smiley.
Zapisane

"Jedynym dowodem na istnienie pozaziemskiej inteligencji jest to, że się z nami nie kontaktują" (A. Einstein)

Untitled - nowa wersja:  llllllllllllllllllll 15%
_jUNIOR.
Newbie
*

wiadomości: 31


Zobacz profil
« Odpowiedz #2 : Październik 15, 2008, 13:59:29 »

O kurcze, to trochę mi zejdzie :/ ale już jest coś na dobry początek. Dzięki Złośliwiec.

Dalej jestem otwarty na inne sugestie Smiley


EDIT:
Program się sypie na linijce:

void GLTexture::Load(const char *name)
{
   texturename = strlwr(strdup(name));
        ...
}
Wynika z tego, że chyba coś wcześniej się skopało z pamięcią ;/ Jakieś pomysły jak to debugować?
Skro Releas w trybie debug działa z bardzo ładnym fps to czy mogę w jakiś sposób odpalać tego Releas exe w tyrbie debug poza VS i jego udostępnić jako wersję do dystrybucji? Smiley
« Ostatnia zmiana: Październik 16, 2008, 21:49:58 wysłane przez _jUNIOR. » Zapisane
klakier
Newbie
*

wiadomości: 23



Zobacz profil
« Odpowiedz #3 : Październik 25, 2008, 13:28:24 »

W zasadzie to możesz, ale dzięki release będzie szybciej i mniej będzie zajmować miejsca Wink

Sprawdź czy korzystasz z bibliotek skompilowanych na debug. Bo jeśli tak to musisz sobie załatwić releas'y. Smiley
Zapisane
Strony: [1]
  Drukuj  
 
Skocz do:  

Hosting: Polska Strefa - Ogłoszenia
Powered by SMF 1.1.7 | SMF © 2006, Simple Machines LLC