Kezdőoldal » Számítástechnika » Programozás » Pascal fordító?

Pascal fordító?

Figyelt kérdés

Le lehet valahonnan tölteni egy Pascal fordítót? Gondolom úgy működik, hogy az args-be kerül a fájlnév illetve a command line agrumentek, és van legalább egy fájl kimenete, egy exe fájl, maga a fordított program. Bonyolultabb ennél? Tudom, van mindenféle linker fájl meg a többi, object fájlok is, azt ő kezeli? Vagy hogy működik ez egyáltalán? Például a FreePascalnál az egyszerűség kedvéért. Amikor Ctrl+F9-et nyomok, mi történik utána? És ha kidob exitcode-dal, kapok egy hexa számot, abban én úgy gondolom benne van a sor, karakter és egy azonosító legalább, vagy hogy van ez?


Köszönöm előre is a válaszokat, egy kicsit lehet, sok a kérdés, de nekem nem tiszta ez az egész.



2014. aug. 2. 20:50
1 2 3
 1/26 tabaki ***** válasza:
51%

"nekem nem tiszta ez az egész"


Nekem se. Ha már egyszer ismered a Free Pascalt, miért nem annak a fordítójával kísérletezel? Ha ki se próbáltad, akkor ezt honnan veszed, hogy csak egy nyers hexa-számot dob ki? Ne az IDE-ben nyomkodd a Ctrl+F9-et, hanem használd parancssorból, akkor többet tapasztalsz:

fpc program.pas


Tessék, itt egy rontott sor hibaüzenete. Egyértelműen, embernyelven megadja a hiba helyét és típusát:


Compiling valami.pas

tombok_01_teszt.pas(48,14) Error: Identifier not found "textcilor"

tombok_01_teszt.pas(81) Fatal: There were 1 errors compiling module, stopping

Fatal: Compilation aborted

2014. aug. 2. 22:29
Hasznos számodra ez a válasz?
 2/26 tabaki ***** válasza:
100%
fenébe, a második helyen nem írtam át a fölöslegesen hosszú fájlnevet, ott is "valami.pas" olvasandó.
2014. aug. 2. 22:31
Hasznos számodra ez a válasz?
 3/26 A kérdező kommentje:
Akkor most olvasd el még egyszer. "És ha kidob exitcode-dal". Azt jelenti, hogy a szintaktika tökéletesen fordítható volt, és már fut a program, csak a debugger hibát jelez, mert ez gondolom már nem a fordító feladata. Van egy -gl beállítás, ott ki is írja a sor számát és a fájlnevet.
2014. aug. 3. 07:03
 4/26 ejbenjaro ***** válasza:
51%
Letöltöd a Free Pascal forráskódját és megnézed benne, amire kíváncsi vagy.
2014. aug. 3. 18:24
Hasznos számodra ez a válasz?
 5/26 A kérdező kommentje:
Szerinted nem tettem még meg? Baromi átlátható, tényleg.
2014. aug. 3. 19:36
 6/26 SimkoL ***** válasza:
51%

'És ha kidob exitcode-dal' akkor elolvasod ezt:


1: Invalid function number.

2: File not found.

3: Path not found.

4: Too many open files.

5: File access denied.

6: Invalid file handle.

12: Invalid file access code.

15: Invalid drive number.

16: Cannot remove current directory.

17: Cannot rename across drives

100: Disk read error.

101: Disk write error.

102: File not assigned.

103: File not open.

104: File not open for input.

105: File not open for output.

106: Invalid numeric format.

150: Disk is write-protected.

151: Bad drive request struct length.

152: Drive not ready.

154: CRC error in data.

156: Disk seek error.

157: Unknown media type.

158: Sector not found.

159: Printer out of paper.

160: Device write fault.

161: Device read fault.

162: Hardware failure.

200: Division by zero.

201: Range check error.

202: Stack overflow error.

203: Heap overflow error.

204: Invalid pointer operation

205: Floating point overflow.

206: Floating point underflow.

207: Invalid floating point operation.

210: Object not initialized.

211: Call to abstract method.

212: Stream registration error.

213: Collection index out of range.

214: Collection overflow error.

216: General protection fault.

217: Unhandled exception occurred.

227: Assertion failed error.

2014. aug. 3. 20:15
Hasznos számodra ez a válasz?
 7/26 A kérdező kommentje:

"benne van a sor, karakter és egy azonosító legalább", ezt nem sikerült elolvasni? Azért ne nézz olyan bénának, nem 2 éve programozom, hogy ezeket ne tudtam volna megnézni, nem egy exitcode-ot kaptam. És mint írtam -gl paraméterrel kiír valami ilyesmit:

Runtime error 255 at 0x0040BDE5

0x0040BDE5 GENERATEERROR255, line 6 of testline.pp

0x0040BDF0 GENERATEANERROR, line 13 of testline.pp

0x0040BE0C main, line 17 of testline.pp

0x0040B7B1


Szerintem már sokkal olvashatóbb, mint hogy általánosságban valahol a programodban van egy memóriatúlcsordulás azt csá. Itt nyilván tudni fogod a sorról, hogy milyen hiba lehet benne, de ha nem tudod, akkor ugye ott az érték is. Most már sikerült megértened?


Nem teljeskörben a fordítóról beszélek, a debuggerről is.

2014. aug. 3. 23:10
 8/26 ejbenjaro ***** válasza:

Runtime error 255 at 0x0040BDE5


itt kapásból kapsz egy Exit code-t (255) és egy memória címet, ahol történt a hiba. Nem mellesleg visszább kellene venned az arcodból cseppet. A hibaüzenet további részében is a hexadecimális értékek címeket jelölnek.

2014. aug. 4. 03:59
Hasznos számodra ez a válasz?
 9/26 ejbenjaro ***** válasza:
Bocs nem Exit code, futás közbeni hiba. Ennek is van táblázata [link]
2014. aug. 4. 04:05
Hasznos számodra ez a válasz?
 10/26 SimkoL ***** válasza:

'Azért ne nézz olyan bénának, nem 2 éve programozom, hogy ezeket ne tudtam volna megnézni, nem egy exitcode-ot kaptam.' Ha nem két éve programozol akkor nem kevernéd a neveket, elnevezéseket. Mivel állandóan 'exitcode'-t emlegettél és nem Run Time Error-t... Pici eltérés van a kettő közt. 'args-be' - erről gyanítom, hogy valami .NET-en tanult 'programozó' vagy. Ezt felénk paraméternek hívják. Szebb is érthetőbb is.


Off:

Elárulom én sem 2 éve programozok - és nem is ilyen 'dedós' szinten - és azok sem akitől válaszokat kaptál.

Felbosszantottam magam !

2014. aug. 4. 09:49
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!