dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Divi jautājumi par DirectX
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next
 
dev.gamez.lv Forum Index -> Microsoft DirectX
View previous topic :: View next topic  
Author Message
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Apr 01, 2009 8:24 am    Post subject:

Jā, Mirror Edge noteikti palīdzēja. Esmu dzirdējis, ka GTA4 arī palīdzot debugot C++ kodu studijas debugerī.
Back to top
View user's profile Send e-mail
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Wed Apr 01, 2009 8:37 am    Post subject:

Sākumā Mirror Edge arī negāja, kamēr neieķeksēju, lai instalē arī papildus softus + noņēmu debugeri.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Wed Apr 01, 2009 4:28 pm    Post subject:

Kas pa' bullsh*tu(atvainojos)? Man Mirror's Edge gāja normāli un nekas tur nebijas jāķeksē. Vispār nekādus papildu softus neprasīja un debuggeri nekur stiept arī nevajadzēja.. Ar CS skillu automātiski nekļūst par datoru ekspertu..

Šādas pazūdošās problēmas gan parasti ir saistītas ar neinicializētajiem mainīgajiem vai ar mēģināšanu nolasīt kaut ko no random adreses, vai ar savas programmas pašbojājošo kodu (speciāli uztaisīts tā, ka pointerī ieraksta kaut kādu crapu vai izdzēš to atmiņu, uz kuru rāda pointeris), bet šis variants galā noved pie pirmajiem diviem.. tātad gaidi kļūdu un debug'o.
Back to top
View user's profile Visit poster's website
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Thu Apr 02, 2009 8:35 am    Post subject:

Es tev saku tikai to, ko es darīju. Gribi tici, gribi netici.
Man ir krievu versija.

Rekur ir source code:

http://www.2shared.com/file/5233718/7382cb43/Full_Screen.html

Debugers saka priekšā, ka vainīgs ir pDevice pointers. Paķēpājos ar IDA disambleri, sapratu, ka vainīga tomēr ir nepareiza device piešķiršana.

Bet jolki-palki, tak visos piemēros ir tā, ka citās klasēs var rakstīt funkcijā šādi:
Code:
void MESH::Draw( IDirect3DDevice9 m_device, .......)
{.......}
un citā klasē šādi:
Code:
void FONT::Print( IDirect3DDevice9 f_device, .......)
{.......}


Un tad galvenajā cpp failā vienu vienīgo šādi

Code:
 IDirect3DDevice9 p_g_device = NULL;


Nez, ko tur neesmu izdarījis līdz galam. Varbūt nepareizi novācu to pointeri?
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Thu Apr 02, 2009 9:20 am    Post subject:

Es ceru ka tu visur vienaadu to mainiigo padod ieksaa ti to p_g_device (tas gan buutu loooti stulbi ja tu taa nedariitu, bet nu ko var zinaat Very Happy) Un lai lietotu ida prieks debugosanas... w-t-f

Es tev eddy iesaku dariit taa - izbeidz copy-pasta piemeerus, un panem RTFM un taisi savu aplikaaciju no tuksas aplikaacijas, caur kaut kaadu tutoriaali mby. Kaa man vnk riebjaas visi sitie kopeetaaji kas nemaak pasi uzrakstiit un nemaz necensaas un cer ka kaut ko iemaaciisies. Jo ja eddy buutu taisiijis no nulles un kaa iesaaceejs buutu sapratis visu liidz tai vietai ko esi uzrakstiijis, stulbi jautaajumi (kaadi tie ir sobriid) un debugosana ar ida atkristu.
_________________
Izraadaas ka dazu dev.gamez.lv lietotaaju absurdaa ignorance meedz eksisteet arii augstaakas paakaapees : http://www.gamedev.net/community/forums/topic.asp?topic_id=411552
Back to top
View user's profile
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Thu Apr 02, 2009 9:44 am    Post subject:

A kurš papagailis tev teica, ka IDA es izmantoju priekš debugošanas?

Kāds vēl tev copy-paste?
Vieglāk ir pateikt, kur ir vaina, nevis teikt - sāc no nulles.
Kura ir tā nulle, ja tu nesaproti kā strādā tas device pointers?

Bez klasēm, vienam objektam, ir ok, viss rullē. Bet bez klases (MESH) man nekas nenotiks, jo man vajag 12 objekti.

Visos citos piemēros (es tak neiešu lasīt tās >500 help lapuses par device, lai saprastu) ir skaidri un gaiši uzrakstīts.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Thu Apr 02, 2009 10:33 am    Post subject:

Nee, nu lieta ir taada ka tu NEMAAKI programeet Razz Tu novelc kaut kaadu sampli, kaut ko iekopee, novelc veelvienu, piekopee kaut ko klaat, un beigaas pat nejeedz ar visprimitiivaakajaam lietaam tikt galaa Wink Un tu saki to "saakt no nulles" taa itkaa tas buutu baigi gruuti.

Ok, jautaajums taads - iedomaajies ka tevi kaads noseedina pie atveertaas tuksas aplikaacijas - vai tu speetu izdariit tik primitiivu lietu kaa uztaisiit straadaajosu d3d aplikacijas lodzinju kurs ziimee vienu modeli ar kaut kaadu vienkaarsu pong gaismu? Ja tava atbilde ir nee, tad gamemakeris varbuut buus iistaa izveele tev. Ja tu tomer negribi gamemakeri, tad iespeejams kaads d3d tutoriaalis noderees. Cik normaalaa liimenii tu C++ zini? Nemot veeraa tavus iepriekseejos postus - very basic. Tas noziime ka arii C++ jaapamaacaas.

Sorry varbuut nedaudz offenesive, bet man uzsit asinis sitie "i copy-pasted this in my code, but it does not work, whats the problem? A bug in D3D maybe? P.S Whats device pointer?"

meklee google pats vai lieto sitos un neatgiezies pirms saproti VISU ko kopee:
http://www.functionx.com/cpp/index.htm
http://www.directxtutorial.com/Tutorial9/tutorials.aspx
_________________
Izraadaas ka dazu dev.gamez.lv lietotaaju absurdaa ignorance meedz eksisteet arii augstaakas paakaapees : http://www.gamedev.net/community/forums/topic.asp?topic_id=411552
Back to top
View user's profile
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Thu Apr 02, 2009 11:20 am    Post subject:

Ak, jēziņ, es taču sāku no "nulles".

Varu uzrakstīt tajā source kodā katram vārdam paskaidrojumu - kāpēc tas ir tur, kāpēc vajag šo un to.

Uztaisīt tev tukšu piemēru no galvas nevar neviens.

Rekur ir pat paskaidrots:

http://www.danielloran.com/study/directx/DirectXCreateDevice.aspx

Rekur ir pat izraksts no mana koda:

Code:


LPDIRECT3DDEVICE9 g_pd3dDevice = NULL;
.....
.....
.....

g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd,  D3DCREATE_SOFTWARE_VERTEXPROCESSING,  &params, &g_pd3dDevice );

.....
....
....
    if( g_pd3dDevice != NULL )
    {
        g_pd3dDevice->Release();
        g_pd3dDevice = NULL;
    }

_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Thu Apr 02, 2009 12:55 pm    Post subject:

Piedod, edij, bet tu nemāki programmēt.
Es pilnīgi nesaprotu, ko tu te vaicā. Kautkādus programmēšanas terminus (klase, objekts, .. ) esi savārstījis dažos teikumos pilnīgi bezjēdzīgās kombinācijās ("pointeru novākšana", ...) Un tad vēl sūdzies par problēmām... Tu jau sāc atgādināt šņaku ar sinusu no vektoru, un NULL pointeriem geimlūpā.

Ja kautkas neiet, tad vajag lietot debugeri. F5 ir ļoti laba metode kā ķert kļūdas runtaimā nepareiza koda izpildei.

Btw, kāpēc jāizmanto IDA diasemblēšanai, ja Visual Studijas debugerī ir iebūvēts ļoti labs diasembleris (to atver keyboard šortkats Alt+8, vai arī zem Debug izvēlnes meņū) ?

Un no galvas neviens nevienam neliek rakstīt aplikācijas. Reference manuāli izmantot nav nekāds grēks. Pat ļoti pieredzējuši programmētāji ikdienā to izmanto visai bieži.
Back to top
View user's profile Send e-mail
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Thu Apr 02, 2009 1:06 pm    Post subject:

Tu kad izej no programmas aiztaisi visus failus ko esi atveeris un lietojis/izveidojis?

Kapeec D3DCREATE_SOFTWARE_VERTEXPROCESSING nevis D3DCREATE_HARDWARE_VERTEXPROCESSING?
_________________
Izraadaas ka dazu dev.gamez.lv lietotaaju absurdaa ignorance meedz eksisteet arii augstaakas paakaapees : http://www.gamedev.net/community/forums/topic.asp?topic_id=411552
Back to top
View user's profile
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Thu Apr 02, 2009 1:26 pm    Post subject:

Ko tad tas debugers man uzrāda, ja ne asamblera kodu?
No kura man ne silts, ne auksts.
Ar IDA var mēģināt atrast to vietu, kur VS 2008 bija noticies crash un papētīt, kura funkcija tad par to apgabalu ir atbildīga.

Tur jau tā problēma, ka man nepietiek ar kļūdas paziņojumu "..blablabla" un ej meklēt, kur tad tev tas device pointers rada to problēmu.

Storm wrote
Code:

1. Tu kad izej no programmas aiztaisi visus failus ko esi atveeris un lietojis/izveidojis?

-----------
Code:
2. Kapeec D3DCREATE_SOFTWARE_VERTEXPROCESSING nevis D3DCREATE_HARDWARE_VERTEXPROCESSING?

Vai tas ko maina?
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Thu Apr 02, 2009 1:30 pm    Post subject:

EDDY wrote:
Ko tad tas debugers man uzrāda, ja ne asamblera kodu?

em.. debugeris (ja runa ir par MSVC) debugo un uzrāda normālu C/C++ kodu. Asemblera kods ir papildus iespēja, pie kuras ir jāķeras tikai galējos gadījumos (kas ir visai reti).

EDDY wrote:
Tur jau tā problēma, ka man nepietiek ar kļūdas paziņojumu "..blablabla" un ej meklēt, kur tad tev tas device pointers rada to problēmu.

Tas tev būs pārsteigums - bet tā strādā jebkurš debugeris, jebkurā programmēšanas valodā. Tas ir tikai instruments tavās rokās, kurš palīdzēs atrast problēmu, bet neatradīs problēmu un tās risinājumu tavā vietā. Parasta rīcība šāda kraša gadījuma ir paskatīties call-stacku un lokālo mainīgo un argumentu vērtības - tb vai tās atbilst tam, ko tu sagaidi. Pēc tam jāķeras pie koda trasēšanas - pa vienas rindiņas izpildei pēc kārtas (F10/F11), pārbaudot vai kods izpildās korektā secībā (if/while/for).

Cirvis tavā vietā malku nesacirtīs - tikai tu pats ar cirvi vari sacirst malku.
Back to top
View user's profile Send e-mail
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Thu Apr 02, 2009 2:02 pm    Post subject:

Tad man prasītos manuālis "Pareiza koda debugošana ar Microsoft VS 2008".

Edit: Ko nozīmē Call-Stack? Kurā programmēšanas grāmatā par to ir rakstīts?
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Thu Apr 02, 2009 2:57 pm    Post subject:

Šis te ir call-stack's:


To dabū Debug->Windows->Call Stack.
Back to top
View user's profile Send e-mail
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Thu Apr 02, 2009 3:21 pm    Post subject:

Skaidrs ...
un kā ar to DirectX utilīti no Control Panel?
Lieku debug versiju, bet tik izsmeļoši man nav.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
Display posts from previous:   
dev.gamez.lv Forum Index -> Microsoft DirectX All times are GMT + 2 Hours
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next
Page 7 of 9

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group