Debug e Amiga

Hello world!

Debug e Amiga

Messaggioda clros » mar apr 08, 2008 2:36 pm

Ecco, tanto per smentirmi, posto una domanda generale sullo sviluppo su Amiga (mi riferisco principalmente ad OS4)

Avevo anche postato su UtilityBase, ma nessuna risposta.

Dunque, mi piacerebbe sapere quali sono gli strumenti e le tecniche di debug che conviene usare sotto AmigaOS(4)?

Una volta su classic usavo qualcosa tipo Enforcer (...anzi, questo no; nn avevo la MMU su classic) per gli accessi illegali e altro (Mungwall?).

Insomma, adesso ho uno strano problema; un programma che sto scrivendo, parte bene per il 50% delle volte, il resto...gura.
Il fatto è che nn "grimma" e devo leggere l'output sul terminale, ma subito dopo freeza, per cui, nn so quale potrebbe essere il problema e sopratutto, come individuarlo.
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: Debug e Amiga

Messaggioda ShInKurO » mer apr 09, 2008 12:20 am

clros ha scritto:Ecco, tanto per smentirmi, posto una domanda generale sullo sviluppo su Amiga (mi riferisco principalmente ad OS4)

Avevo anche postato su UtilityBase, ma nessuna risposta.

Dunque, mi piacerebbe sapere quali sono gli strumenti e le tecniche di debug che conviene usare sotto AmigaOS(4)?


Usa MemGuard su OS4, MungWall su OS3, AROS è già compilato con tutto il debug abilitato. Per catturare l'output della seriale usa sashimi... Leggi il paragrafo 2.5.2 della mia guida.
Per OS4 ci sarebbe anche questo pseudoarticolo, ma ancora non ho provato queste tecniche:

http://utilitybase.com/forum/index.php? ... &topic=157
Avatar utente
ShInKurO

Eroe
 
Messaggi: 1428
Iscritto il: dom mar 14, 2004 3:10 pm

Re: Debug e Amiga

Messaggioda clros » mer apr 09, 2008 6:42 am

Per sashimi...è possibile scorrere il contenuto della finestra?

Cmq, quando freeza l'amiga è impossibile utilizzarlo. :triste:
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: Debug e Amiga

Messaggioda ShInKurO » mer apr 09, 2008 6:58 am

clros ha scritto:Per sashimi...è possibile scorrere il contenuto della finestra?


Salvi il contenuto della finestra in un file. Basta lanciare :

run >nil: MemGuard ShowFails

wait 1;

Run >NIL: SashimiPPC CONSOLE BUFK=64 NOPROMPT SAVEAS Crashlogs:sashimiOutput.txt


e premere ogniqualvolta vuoi leggere il contenuto Ctrl+F...
Devi leggere la documentazione :)

Cmq, quando freeza l'amiga è impossibile utilizzarlo. :triste:


Con OS4 mi sarà accaduto 5 o 6 volte, e cmq alla fine è facile capire perchè crasha qualcosa in una situazione simile su un TUO codice... altrimenti catturi dalla seriale come penso tu sappia fare (io non ne ho idea a quel punto :-D)
Avatar utente
ShInKurO

Eroe
 
Messaggi: 1428
Iscritto il: dom mar 14, 2004 3:10 pm

Re: Debug e Amiga

Messaggioda ShInKurO » mer apr 09, 2008 7:12 am

clros ha scritto:Per sashimi...è possibile scorrere il contenuto della finestra?

Cmq, quando freeza l'amiga è impossibile utilizzarlo. :triste:


Cmq pensavo che, paradossalmente, in casi come questo (immagino che sviluppare classi boopsi o utilizzare in modo "strano" funzioni di graphics o altri moduli del genere inevitabilmente aumenti i casi di freeze), sicuramente il sistema più indicato è una versione Linux hosted di AROS, difatti nel caso in cui AROS crashi avrai sempre la shell di Linux con tutto l'output di debug ( in quel caso infatti non hai bisogno di sashimi, in quanto l'output di AROS hosted va sulla shell di linux dalla quale hai lanciato AROS...).
Avatar utente
ShInKurO

Eroe
 
Messaggi: 1428
Iscritto il: dom mar 14, 2004 3:10 pm

Re: Debug e Amiga

Messaggioda clros » mer apr 09, 2008 9:00 am

Salvi il contenuto della finestra in un file. Basta lanciare :

run >nil: MemGuard ShowFails

wait 1;

Run >NIL: SashimiPPC CONSOLE BUFK=64 NOPROMPT SAVEAS Crashlogs:sashimiOutput.txt


e premere ogniqualvolta vuoi leggere il contenuto Ctrl+F...
Devi leggere la documentazione :)


Thanks! ;-)


Con OS4 mi sarà accaduto 5 o 6 volte, e cmq alla fine è facile capire perchè crasha qualcosa in una situazione simile su un TUO codice... altrimenti catturi dalla seriale come penso tu sappia fare (io non ne ho idea a quel punto :-D)


Si, infatti...devo fare qualcosa di veramente strano, ma nn ho ancora capito cosa...
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: Debug e Amiga

Messaggioda clros » mer apr 09, 2008 5:12 pm

Ecco cosa nn andava..
MemGuard all'avvio si succhia tt la memoria e praticamente nn posso più fare nulla...
Eppure, mi ricordavo che andava...
Uso la versione 1.6 dell'Ottobre 2005
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: Debug e Amiga

Messaggioda clros » mer apr 09, 2008 5:24 pm

Ok, scaricata la 1.13
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: Debug e Amiga

Messaggioda clros » mer apr 09, 2008 5:59 pm

E te pareva....
Quando lancio MemGuard...il mio programma che dava problemi funziona a meraviglia!
E l'ho lanciato decine di volte e in diverse "sessioni" di lavoro...niente di niente, funziona bene e memguard nn si lamenta affatto!!!

Quando nn lancio MemGuard, lo stesso programma...inutile, nn si avvia cn messaggi di debug a volte interminabili sulla seriale (va in guru ...tutto!)

MemGuard "protegge" in qualche modo il sistema?
Anche quando, nn dovrebbe segnalare che qualcosa sta andando storto?
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Messaggioda NubeCheCorre » mer apr 09, 2008 6:20 pm

E' strano.. infatti la prima volta che lo provai non dava problemi a parte quel guru all' uscita.. pero' poi ha smesso di funzionare del tutto e non so come mai..
W il Veneto :ride:
Avatar utente
NubeCheCorre

Leggenda
 
Messaggi: 10624
Iscritto il: dom set 21, 2003 9:21 pm
Località: San remo

Messaggioda clros » mer apr 09, 2008 6:34 pm

NubeCheCorre ha scritto:E' strano.. infatti la prima volta che lo provai non dava problemi a parte quel guru all' uscita.. pero' poi ha smesso di funzionare del tutto e non so come mai..


E' lo stesso identico programma cn lo stesso gadget custom.
NN ho cambiato una virgola.
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: Debug e Amiga

Messaggioda ShInKurO » mer apr 09, 2008 8:08 pm

clros ha scritto:MemGuard "protegge" in qualche modo il sistema?
Anche quando, nn dovrebbe segnalare che qualcosa sta andando storto?


MemGuard funziona come MungWall, dunque:

"The ``wall'' part of Mungwall allocates extra memory before and after
every memory allocation and fills this memory ``wall'' with a fill pattern
(normally $BB) and some information Mungwall uses to perform certain tests
on an application's memory blocks"

http://amiga.nvg.org/amiga/reference/Am ... e0053.html
Avatar utente
ShInKurO

Eroe
 
Messaggi: 1428
Iscritto il: dom mar 14, 2004 3:10 pm

Messaggioda ShInKurO » mer apr 09, 2008 8:25 pm

Metti il codice condizionale che ho scritto nel paragrafo della mia guida che ti avevo segnalato (lo devi inserire in ciascun file .c dopo gli include) e metti ad inizio di ogni funzione

KPRINTF("nomeFunzione, Entrata\n"); Delay(20);

e prima del return di ciascuna funzione metti:

KPRINTF("nomeFunzione, Uscita\n"); Delay(20);

E vedi dove crasha attraverso sashimi...
Avatar utente
ShInKurO

Eroe
 
Messaggi: 1428
Iscritto il: dom mar 14, 2004 3:10 pm

Messaggioda clros » mer apr 09, 2008 9:00 pm

ShInKurO ha scritto:Metti il codice condizionale che ho scritto nel paragrafo della mia guida che ti avevo segnalato (lo devi inserire in ciascun file .c dopo gli include) e metti ad inizio di ogni funzione

KPRINTF("nomeFunzione, Entrata\n"); Delay(20);

e prima del return di ciascuna funzione metti:

KPRINTF("nomeFunzione, Uscita\n"); Delay(20);

E vedi dove crasha attraverso sashimi...


Si, bhe, ovvio; l'ho fatto centomila volte, solo che nn reindirizzavo l'output di sashimi su file.
ads provo cn i KPrintF() e reindirizzo l'output sul file e vedo che succede.
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: Debug e Amiga

Messaggioda clros » mer apr 09, 2008 10:23 pm

MemGuard funziona come MungWall, dunque:

"The ``wall'' part of Mungwall allocates extra memory before and after
every memory allocation and fills this memory ``wall'' with a fill pattern
(normally $BB) and some information Mungwall uses to perform certain tests
on an application's memory blocks"


Scusa Shinky ma... questo spiega il perchè se lancio MemGuard il mio programma nn fa i capricci?
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Prossimo

Torna a Programmazione su Amiga

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti