[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Galileon

9/20/2007 5:07:00 PM

Witam,
Czy kto¶ mo¿e ma pomys³ co zmieniæ w konfiguracji Debug aby upodobiæ j± do
release.
Mam taki problem - program dzia³a elegancko w debug a w release wywala siê
co jaki¶ czas :/

Pzdr.
Hyde


8 Answers

yamma

9/20/2007 8:01:00 PM

0


U?ytkownik "mr.Hyde" <galileon@poczta.onet.pl> napisa3 w wiadomo?ci
news:fcu9c6$rap$1@news.onet.pl...
> Witam,
> Czy kto? mo?e ma pomys3 co zmienia w konfiguracji Debug aby upodobia j? do
> release.
> Mam taki problem - program dzia3a elegancko w debug a w release wywala sie
> co jaki? czas :/

Jaki jezyk? Je?li C++, to wina mo?e le?ea po stronie niezainicjowanych
zmiennych - w wersji Release zadeklarowana zmienna mo?e przyjmowaa
przypadkowe warto?ci. Np. wszystkie sk3adowe struktury/klasy utworzonej przy
pomocy operatora new w wersji Release musz? bya zainicjowane.
yamma

ObiOba

9/20/2007 8:26:00 PM

0

Czasami tak sie zdarza :). Wina jest po stronie programisty oraz
optymalizacji. W wersji Debug wy?wietl w3a?ciwo?ci C/C++ -> General ->
Debug Info : Disable. W wersji Release mo?esz popróbowaa z wy3?czaniem
optymalizacji, ale nie zawsze to pomaga, bo w Release jest inny kody ni? w
Debug.

Kacza

9/20/2007 9:11:00 PM

0

mr.Hyde pisze:

> Mam taki problem - program dzia3a elegancko w debug a w release wywala sie
> co jaki? czas :/

W debugu chyba inaczej allokowana jest pamiec dla tablic - tzn na
wszelki wypadek jest allokowane troche wiecej. Moze w jakichs
przypadkach przekraczasz zakres tych tablic?
(zakladam, ze pointery sa poustawiane na null).

Posprawdzaj tez pragma packi bo to tez potrafi namieszac podczas
tworzenia/kasowania obiektow.

Ostatecznie napisz sobie jakas klase do logowania do pliku i probuj,
moze w koncu trafisz gdzie sie wyklada i dlaczego.

--
Kacza

Pawel Kierski

9/21/2007 8:48:00 AM

0

mr.Hyde w wiadomo?ci <fcu9c6$rap$1@news.onet.pl> pisze:
> Witam,
> Czy kto? mo?e ma pomys3 co zmienia w konfiguracji Debug aby upodobia j? do
> release.
> Mam taki problem - program dzia3a elegancko w debug a w release wywala sie
> co jaki? czas :/

Lepiej odwrotnie: w3?cz symbole dla debuggera w wersji Release. To w
ogóle podstawa - generuj? sie pliki .pdb, które s? nieocenione przy
analizie crashy. Przy jakim? finalnym generowaniu wersji warto
zachowaa: stan ?róde3, wygnerowane binarki i .pdb.

W Properties projektu w wersji Release:
- Configuration Properties / C++ / General / Debug Information Format
-> Program Database (/Zi)
- Configuration Properties / Linker / Debugging / Generate Debug Info
-> Yes (/DEBUG)

Debugowanie takiego kodu bywa nieco trudne ze wzgledu na
optymalizacje, do?a czesto przydaje sie Alt-8 (Disassembly Window).

--
Pawe3 Kierski
news@pkierski.net
dodaj "[nomorespam]" w temacie je?li piszesz z domeny innej ni? .pl,
albo koniecznie chcesz obej?a moje filtry 8-)

Darek Ostolski

9/21/2007 4:58:00 PM

0

mr.Hyde pisze:
> Witam,
> Czy kto? mo?e ma pomys3 co zmienia w konfiguracji Debug aby upodobia j? do
> release.
> Mam taki problem - program dzia3a elegancko w debug a w release wywala sie
> co jaki? czas :/
>



Poszukaj b3edów, tak jak napisali inni jest poszukaj zmiennych
niezainicjowanych, sprawd? zakresy kontenerów (mo?e rzucanie wyj?tkiem
na zakonczenie), dodaj symbole i skorzystaj z biblioteki bugtrap
(poszukaj na codeguru.com), pomo?e Ci znale?a miejsce na którym sie
wyk3ada program.

Pozdrawiam
Darek

Galileon

9/22/2007 8:18:00 PM

0

>
> Lepiej odwrotnie: w³±cz symbole dla debuggera w wersji Release. To w
> ogóle podstawa - generuj± siê pliki .pdb, które s± nieocenione przy
> analizie crashy. Przy jakim¶ finalnym generowaniu wersji warto
> zachowaæ: stan ¼róde³, wygnerowane binarki i .pdb.
>
> W Properties projektu w wersji Release:
> - Configuration Properties / C++ / General / Debug Information Format
> -> Program Database (/Zi)
> - Configuration Properties / Linker / Debugging / Generate Debug Info
> -> Yes (/DEBUG)
>
> Debugowanie takiego kodu bywa nieco trudne ze wzglêdu na
> optymalizacjê, do¶æ czêsto przydaje siê Alt-8 (Disassembly Window).
>

Dziêki wszystkim za pomoc,
w koñcu znalaz³em - zakres jednej tablicy znaków za du¿a o jeden ehh
Na bibliotekach debug mfc dzia³a³o git :) na release lipa.

Pzdr.
Hyde


Jakub Debski

9/23/2007 9:15:00 AM

0

> Lepiej odwrotnie: w3?cz symbole dla debuggera w wersji Release. To w
> ogóle podstawa - generuj? sie pliki .pdb, które s? nieocenione przy
> analizie crashy. Przy jakim? finalnym generowaniu wersji warto
> zachowaa: stan ?róde3, wygnerowane binarki i .pdb.

Dodam, ?e warto stworzya lokalny server symboli, co zautomatyzuje ca3y
proces.

pozdrawiam
Jakub


Pawel Kierski

9/24/2007 7:56:00 AM

0

mr.Hyde w wiadomo?ci <fd3t9f$lus$1@news.onet.pl> pisze:
[...]
> w koncu znalaz3em - zakres jednej tablicy znaków za du?a o jeden ehh
> Na bibliotekach debug mfc dzia3a3o git :) na release lipa.

Jeszcze raz - program dzia3a (w tym wypadku: nie dzia3a) tak samo w
release i debug. Tylko objawy s? ró?ne: w debug udaje, ?e dzia3a, a w
release sie wywala (choa bywa odwrotnie). B3?d jest po stronie
u?ywaj?cego programisty.

--
Pawe3 Kierski
news@pkierski.net
dodaj "[nomorespam]" w temacie je?li piszesz z domeny innej ni? .pl,
albo koniecznie chcesz obej?a moje filtry 8-)