utilizzo di ddd
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
utilizzo di ddd
ciao
sto sviluppando un progetto di discrete dimensioni, in c e multithread.. a volte ho dei problemi con i puntatori, errori di segmentation fault e cose di questo tipo... in un progetto multithread comincia a diventare un po problematico fare il debug "manuale" su stderr...mi sarei deciso quindi ad utilizzare un debugger
pensavo a ddd (il quale non è altro che un'interfaccia grafica a gdb)
dunque, so che devo compilare il programma con l'opzione -g e poi lancio il tutto con
#ddd ./mioeseguibile
posso impostare i vari break, vedere le variabili, ok fino a li ci sono, quello che mi servirebbe però è una sotra di printstacktrace (tipo quello di java) che mi fa capire quale è stata la funzione (o meglio ancora la variabile) che è andata a scrivere porcheria in giro...
leggendo in giro ho visto che è possibile facendo un analisi del file core... il fatto è che non mi viene sempre generato!
ciao e grazie
sto sviluppando un progetto di discrete dimensioni, in c e multithread.. a volte ho dei problemi con i puntatori, errori di segmentation fault e cose di questo tipo... in un progetto multithread comincia a diventare un po problematico fare il debug "manuale" su stderr...mi sarei deciso quindi ad utilizzare un debugger
pensavo a ddd (il quale non è altro che un'interfaccia grafica a gdb)
dunque, so che devo compilare il programma con l'opzione -g e poi lancio il tutto con
#ddd ./mioeseguibile
posso impostare i vari break, vedere le variabili, ok fino a li ci sono, quello che mi servirebbe però è una sotra di printstacktrace (tipo quello di java) che mi fa capire quale è stata la funzione (o meglio ancora la variabile) che è andata a scrivere porcheria in giro...
leggendo in giro ho visto che è possibile facendo un analisi del file core... il fatto è che non mi viene sempre generato!
ciao e grazie
- alessiodf
- Linux 3.x

- Messaggi: 823
- Iscritto il: ven 14 ott 2005, 21:04
- Slackware: current
- Kernel: 2.6.26.4
- Desktop: Kde 4.1
- Località: Roma
- Contatta:
il backtrace si può vedere! devo ammettere che ddd è molto ben fatto, anche se per motivi di comodità io utilizzo gdb... in gdb per stampare lo stack c'è il comando che ti va vedere molte informazioni sulle chiamate effettuare, ecc... poi con il comando display NOME_VARIABILE/STRUTTURA puoi visualizzare passo passo come mutano le variabili... ddd comunque è meglio utilizzarlo tramite la console sottostante che ti da la possibilità di inserire comandi gdb! Io lo uso per debuggare il kernel
comunque se da console entri in gdb, e dai help, ti dice tutti i comandi ordinati per categoria! ce ne sono una svaria! ciao!
Codice: Seleziona tutto
btcomunque se da console entri in gdb, e dai help, ti dice tutti i comandi ordinati per categoria! ce ne sono una svaria! ciao!
Codice: Seleziona tutto
#3 0x0804d9e8 in load_db_pacchetti (path=0x805d322 "/home/nik600/prova", db=0x806dde0) at src/packets.c:241
thanks!
- gioco
- Packager

- Messaggi: 900
- Iscritto il: dom 19 giu 2005, 0:00
- Slackware: last stable
- Località: in the court of the Wesnoth king
- Contatta:
Re: utilizzo di ddd
Posso segnalarti anche Electrict Fence (http://perens.com/FreeSoftware/) e LCLint (la versione opensource di lint che è proprietario), due tool che permettono di scovare errori nella gestione della memoria. Non so dirti di più, devo ancora provarli.nik600 ha scritto:ciao
sto sviluppando un progetto di discrete dimensioni, in c e multithread.. a volte ho dei problemi con i puntatori, errori di segmentation fault e cose di questo tipo... in un progetto multithread comincia a diventare un po problematico fare il debug "manuale" su stderr...mi sarei deciso quindi ad utilizzare un debugger
- alessiodf
- Linux 3.x

- Messaggi: 823
- Iscritto il: ven 14 ott 2005, 21:04
- Slackware: current
- Kernel: 2.6.26.4
- Desktop: Kde 4.1
- Località: Roma
- Contatta:
nik600 ha scritto:Codice: Seleziona tutto
#3 0x0804d9e8 in load_db_pacchetti (path=0x805d322 "/home/nik600/prova", db=0x806dde0) at src/packets.c:241))
thanks!
