informatica:sol:laboratorio11:faq
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Prossima revisione | Revisione precedente | ||
| informatica:sol:laboratorio11:faq [09/01/2011 alle 15:23 (15 anni fa)] – creata Susanna Pelagatti | informatica: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 // | Ossia // | ||
| + | ===== 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' | ||
| + | Ad esempio: | ||
| + | < | ||
| + | # seconda invocazione pippo (password errata) | ||
| + | ./ | ||
| + | # uccido il client (non deve essere attivo) | ||
| + | if killall -w pippoclientw.sh; | ||
| + | echo Error 1 1>&2 | ||
| + | ....... | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | # seconda invocazione pippo (password errata) | ||
| + | ./ | ||
| + | |||
| + | sleep 1 # < ------ fix | ||
| + | |||
| + | # uccido il client (non deve essere attivo) | ||
| + | if killall -w pippoclientw.sh; | ||
| + | echo Error 1 1>&2 | ||
| + | ...... | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== FRAM 1: Il grafo e' ORIENTATO ===== | ||
| + | Nel file '' | ||
| + | |||
| + | ===== FRAM 1: Errore nella specifica di new_graph(): | ||
| + | Nel file '' | ||
| + | <code c> | ||
| + | /** crea un grafo | ||
| + | \param n numero dei nodi del grafo | ||
| + | \param lbl array di etichette de nodi formato: | ||
| + | static const char* citta[] = { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | 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' | ||
| + | */ | ||
| + | graph_t * new_graph (unsigned int n, char **lbl); | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== FRAM 1: A cosa serve la macro '' | ||
| + | La macro | ||
| + | < | ||
| + | #define UNDEF ((unsigned int) -1) | ||
| + | </ | ||
| + | serve a segnalare l' | ||
| ===== E' possibile accedere al numero di linea in C ? ===== | ===== E' possibile accedere al numero di linea in C ? ===== | ||
| Linea 9: | Linea 72: | ||
| __LINE__ | __LINE__ | ||
| </ | </ | ||
| - | |||
| - | |||
| ===== 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 18: | Linea 79: | ||
| - | ===== FRAM3: errore nella specifica in '' | ||
| - | Nella specifica della funzione openConnection nel file comsock.h e' richiesto che la funzione ritorni 0 se la connessione ha avuto successo. Questo e' ovviamente sbagliato perche' | ||
| - | <code c> | ||
| - | /** crea una connessione all socket del server. In caso di errore funzione tenta NTRIALCONN volte la connessione (a distanza di 1 secondo l'una dall' | ||
| - | | ||
| - | | ||
| - | | ||
| - | se la connessione ha successo | ||
| - | | ||
| - | | ||
| - | * | ||
| - | | ||
| - | */ | ||
| - | int openConnection(char* path); | ||
| - | </ | ||
| - | ===== FRAM1: Come deve essere inizializzata la hash table ? ===== | ||
| - | In '' | ||
| - | ===== 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 '' | No, seguendo la convenzione delle funzioni di libreria C gli errori devono essere riportati con un opportuno codice di ritorno ed eventualmente settando '' | ||
| Linea 58: | Linea 102: | ||
| (vedete anche man bashdb e l'help che ottenete digitando " | (vedete anche man bashdb e l'help che ottenete digitando " | ||
| - | ===== Debuggare programmi con piu` processi ===== | + | ===== Debuggare programmi con piu` processi/ |
| - | E` possibile usare GDB per debuggare programmi multiprocesso / multithread come indicato nella documentazione [[http:// | + | E` possibile usare GDB per debuggare programmi multiprocesso / multithread come indicato nella documentazione [[http:// |
| - | [[http:// | + | 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.1294586619.txt.gz · Ultima modifica: 09/01/2011 alle 15:23 (15 anni fa) da Susanna Pelagatti
