Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio11:faq

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
informatica:sol:laboratorio11:faq [09/01/2011 alle 15:27 (14 anni fa)] – [FRAM1: Come deve essere inizializzata la hash table ?] Susanna Pelagattiinformatica:sol:laboratorio11:faq [22/09/2011 alle 10:41 (14 anni fa)] (versione attuale) – [FRAM 3: BUG in testparse] Susanna Pelagatti
Linea 2: Linea 2:
 Ossia //Frequently Asked Questions//. Ossia //Frequently Asked Questions//.
  
 +===== FRAM 3: BUG in testparse =====
 +Nel file testparse e' presente una scorretta temporizzazione fra le attivazioni dei client ed i comandi successivi (es kill) che lavorano sul client stesso. Il problema si deve fissare modificando testparse e introducendo delle sleep fra l'attivazione ed i comandi successivi in modo che quest'ultimi trovino il client sicuramente attivo.
 +Ad esempio:
 +<code>
 +# seconda invocazione pippo (password errata)
 +./pippoclientw.sh &
  
 +# uccido il client (non deve essere attivo)
 +if  killall -w pippoclientw.sh; killall -w docars ; then
 +    echo Error 1 1>&2
 +    .......
 +</code>
 +
 +<code>
 +# seconda invocazione pippo (password errata)
 +./pippoclientw.sh &
 +
 +sleep 1        # < ------ fix
 +
 +# uccido il client (non deve essere attivo)
 +if  killall -w pippoclientw.sh; killall -w docars ; then
 +    echo Error 1 1>&2
 +    ......
 +</code>
 +
 +
 +===== FRAM 1: Il grafo e' ORIENTATO =====
 +Nel file ''dgraph.h'' del tar in linea e' presente un commento errato che parla di grafi non-orientati: ignoratelo.
 +
 +===== FRAM 1: Errore nella specifica di new_graph(): errno deve essere settato a EINVAL in caso di parametri errati =====
 +Nel file ''dgraph.h'' del tar in linea si richiede di settare ''errno'' ad ''EINTR'' in caso di parametri errati, il settaggio corretto e' ''EINVAL'', la specifica corretta segue:
 +<code c>
 +/** crea un grafo 
 +    \param n numero dei nodi del grafo
 +    \param lbl array di etichette de nodi formato:
 +    static const char* citta[] = {
 +        "PISA",
 +        "LUCCA",
 +        "SIENA",
 +        "LIVORNO",
 +        NULL,
 +       };
 +
 +    Attenzione: le citta possono contenere solo caratteri alfanumerici e lo spazio ' '
 +
 +    \retval p puntatore al nuovo grafo (se tutto e' andato bene)
 +    \retval NULL se si e' verificato un errore (setta errno)
 +    (errno == EINVAL se i parametri non sono validi es lbl a NULL)
 +    (errno == ENOMEM se l'allocazione e' fallita)
 +*/
 +graph_t * new_graph (unsigned int n, char **lbl);
 +</code>
 +
 +
 +
 +
 +
 +
 +===== FRAM 1: A cosa serve la macro ''UNDEF''? =====
 +La macro
 +<code>
 +#define UNDEF ((unsigned int) -1)
 +</code>
 +serve a segnalare l'assenza di predecessore nell'array di precedenze utilizzato dall'algoritmo di calcolo dello Shortest Path.
  
 ===== E' possibile accedere al numero di linea in C ? ===== ===== E' possibile accedere al numero di linea in C ? =====
Linea 9: Linea 72:
 __LINE__ __LINE__
 </code> </code>
- 
- 
 ===== FRAM3: e' possibile modificare i file .h del primo frammento ? ===== ===== FRAM3: e' possibile modificare i file .h del primo frammento ? =====
 Si, e' possibile aggiungere campi alle strutture e prototipi nei file .h del primo frammento estendendo la libreria a patto che continuino a funzionare i test del primo frammento. Si, e' possibile aggiungere campi alle strutture e prototipi nei file .h del primo frammento estendendo la libreria a patto che continuino a funzionare i test del primo frammento.
Linea 20: Linea 81:
  
  
-===== FRAM1: Devo invocare perror() dentro le funzioni di genList e genHash ? =====+===== FRAM1: Devo invocare perror() dentro le funzioni di libreria ? =====
 No, seguendo la convenzione delle funzioni di libreria C gli errori devono essere riportati con un opportuno codice di ritorno ed eventualmente settando ''errno''. Sara' chi invoca la funzione che invochera` anche ''perror()'' se lo ritiene opportuno. No, seguendo la convenzione delle funzioni di libreria C gli errori devono essere riportati con un opportuno codice di ritorno ed eventualmente settando ''errno''. Sara' chi invoca la funzione che invochera` anche ''perror()'' se lo ritiene opportuno.
  
Linea 41: Linea 102:
 (vedete anche man bashdb e l'help che ottenete digitando "h" al suo prompt). (vedete anche man bashdb e l'help che ottenete digitando "h" al suo prompt).
  
-===== Debuggare programmi con piu` processi ===== +===== Debuggare programmi con piu` processi/thread ===== 
-E` possibile usare GDB per debuggare programmi multiprocesso / multithread come indicato nella documentazione [[http://sourceware.org/gdb/current/onlinedocs/gdb_5.html#SEC27|qui]] e +E` possibile usare GDB per debuggare programmi multiprocesso / multithread come indicato nella documentazione [[http://sourceware.org/gdb/current/onlinedocs/gdb/Threads.html#Threads|qui]] e [[http://sourceware.org/gdb/current/onlinedocs/gdb/Attach.html#Attach|qui]]. 
-[[http://sourceware.org/gdb/current/onlinedocs/gdb_5.html#SEC28|qui]]. E` possibile usare i comandi indicati anche in DDD, scrivendoli manualmente nel prompt del GDB in basso nella schermata.+ E` possibile usare i comandi indicati anche in DDD, scrivendoli manualmente nel prompt del GDB in basso nella schermata.
  
 ===== Uso di GDB da emacs ===== ===== Uso di GDB da emacs =====
informatica/sol/laboratorio11/faq.1294586833.txt.gz · Ultima modifica: 09/01/2011 alle 15:27 (14 anni fa) da Susanna Pelagatti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki