View previous topic :: View next topic |
Author |
Message |
Tankists
Joined: 18 Dec 2006 Posts: 81 Location: Baldone
|
Posted: Wed Oct 29, 2008 7:50 pm Post subject: Dīvains errors... |
|
Veidojot savu projektu pēkšņi sapratu, ka izejot no programmas uzlec sekojošs error.
Ir kādam zināms varbūt apmēram kur varētu būt kļūda? _________________ Getting used to problems... |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Wed Oct 29, 2008 7:57 pm Post subject: |
|
palaid projektu ar "Start Debugging" jeb F5, ja ar MS VC strādā. (ja nav MSVC, tad trakāk )
šeit izskatās, ka esi kādu null pointeri aizticis. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
Tankists
Joined: 18 Dec 2006 Posts: 81 Location: Baldone
|
Posted: Wed Oct 29, 2008 8:12 pm Post subject: |
|
+/- sapratu kurā galā ir kļūda(buttonu klasē), bet pointeru pašai klasei nav. _________________ Getting used to problems... |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Wed Oct 29, 2008 8:12 pm Post subject: |
|
Errors nav dīvainis. Visparastākais kļūdas paziņojums par to, ka tava aplikācija grābstās gar neatļautu atmiņu.
Iemācies lietot debugeri - ar to varēs precīzi atrast kurā vietā ir kods, kas izraisa šo kļūdu, un varēs pārbaudīt mainīgo vērtības, kas pie tā atbildīgi, lai noskaidrotu problēmu. http://www.gamedev.net/reference/articles/article2322.asp
Šī kļūda ir lielisks piemērs arī kāpēc nevajag programmēt C++'ā. Augstāka līmeņa valodās (C#, Java, Python, utt) šādu kļūdu nekad nedabūsi - tādās programmēt ir daudz vienkāršāk/vieglāk, īpaši jau iesācējam, kurš pamanās bieži ielaist kļūdas. Esi pārliecināts, ka programmē pareizajā valodā? ;) |
|
Back to top |
|
|
Tankists
Joined: 18 Dec 2006 Posts: 81 Location: Baldone
|
Posted: Wed Oct 29, 2008 8:29 pm Post subject: |
|
Zinu, ka neprotu debugot, bet ceru, ka ar laiku pratīšu.
Itkā atradu rindiņu kurā itkā parādās šī kļūda, vismaz šo rindiņu nokomentējot errora nav. Nesaprotu tikai kas tur slikts.
Code: | void CButton::drawButton(CGameEngine* game)
{
game->screen.Draw(textString);
} |
_________________ Getting used to problems... |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Wed Oct 29, 2008 8:43 pm Post subject: |
|
Uzliec breikpointu šajā rindiņā. Palaid programmu. Kad debugeris apstājas breikpointā, tad pārbaudi game, game->screen un textString mainīgo vērtības. T.i. pāliecinies vai tās satur sakarīgu informāciju. |
|
Back to top |
|
|
Tankists
Joined: 18 Dec 2006 Posts: 81 Location: Baldone
|
Posted: Wed Oct 29, 2008 9:04 pm Post subject: |
|
Starp citu lietoju Code::Blocks. Paskatījos tajā breikpointā ar Memory Dump tūli un tur bija rakstīts Code: | Cannot access memory at address 0x45c
|
un šāds izslatās Watches tūļa logs:
nav ne jausmas kas varētu būt pie vainas un ko darīt... _________________ Getting used to problems... |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Wed Oct 29, 2008 9:08 pm Post subject: |
|
textString tev ir const char* vai std::string tipa (ja teksts)?
vai kāds cits parasts pointeris? _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
Tankists
Joined: 18 Dec 2006 Posts: 81 Location: Baldone
|
Posted: Wed Oct 29, 2008 9:10 pm Post subject: |
|
Tas ir SFML sf::String tipa mainīgais(ar to zīmē tekstu). _________________ Getting used to problems... |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Wed Oct 29, 2008 9:22 pm Post subject: |
|
varbūt pamēģini uzlikt breakpointu uz Draw funkcijas, pēc tam lieto "Step Into", lai nokļūtu precīzi līdz tai vietai, kurā tiek aiztikts sliktais pointeris, un apskaties, kurš tas ir. Tālāk gan jau atradīsi ceļu ārā no problēmas. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
Tankists
Joined: 18 Dec 2006 Posts: 81 Location: Baldone
|
Posted: Wed Oct 29, 2008 9:36 pm Post subject: |
|
Draw funkcija ir SFML dll`ā. Tā nav manis ražota. _________________ Getting used to problems... |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Wed Oct 29, 2008 9:39 pm Post subject: |
|
SFML source kodu var dabūt viņu mājaslapā
-> http://www.sfml-dev.org/download.php
-> SFML full SDK _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
Tankists
Joined: 18 Dec 2006 Posts: 81 Location: Baldone
|
Posted: Wed Oct 29, 2008 11:09 pm Post subject: |
|
Interesanti, bet uz cita datora šis error neparādās...
Tiem kas vēlas pamēģināt - errors rādās izejot no programmas.
http://www.box.net/shared/a62fu8jqv8 _________________ Getting used to problems... |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Wed Oct 29, 2008 11:40 pm Post subject: |
|
man erroru nerādīja.
kaut kāds SFML bugs tad varētu būt..
labāk apskati to source kodu.
btw, man šķiet, ka es googlē jau vienu topiku viņu forumā par to redzēju.. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Wed Oct 29, 2008 11:42 pm Post subject: |
|
Tankists wrote: | Interesanti, bet uz cita datora šis error neparādās... |
Tas vēl jo vairāk nozīmē to, ka ir problēmas ar atmiņu. Vai nu kautko neinicializē līdz galam, vai arī kautko iznīcini vairāk nekā vajadzīgs, vai pārraksti kautkur pāri, kur nedrīkst, vai tml problēmu.
Pamācies vien lietot debugeri. Paseko uz atpakaļu koda darbībā kā tev tas drawStrings rodās un kur glabājas. Pa ceļam tas kautkur visdrīzāk sabojājas - to vietu tad tev arī vajag atrast. |
|
Back to top |
|
|
|