Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

Debian GNU/Linux Reference Guide
Prev Home Next

13.7.2 Debugging


13.7.2.1 Debugging con gdb

Preparazione:

     # apt-get install gdb

Riferimenti per gdb:

Per il debugging di un programma compilato con l'opzione -g, usate gdb. Molti comandi possono essere abbreviati. L'espansione del comando mediante tab funziona come per la shell.

     $ gdb program
     (gdb) b 1                # imposta il punto di interruzione alla riga 1
     (gdb) run arg1 arg2 arg3 # lancia il programma
     (gdb) next               # riga successiva
     ...
     (gdb) step               # un passo avanti
     ...
     (gdb) p parm             # stampa parm 
     ...
     (gdb) p parm=12          # imposta il valore di parm a 12

Per il debugging da emacs, fate riferimento a Riassunto dei comandi (Emacs e Vim), Sezione 11.3.4.

Dato che tutti i binari installati devono essere adattati al sistema Debian in maniera predefinita, gran parte dei simboli di debug sono stati rimossi. Per rendere gdb utile per il debug dei pacchetti Debian, i pacchetti pertinenti devono essere ricompilati con la cura seguente:

  • Modificate debian/control per eliminare il pacchetto version.

  • Controllate gli script di compilazione ed assicuratevi che usino CFLAGS=-g -Wall per compilare i binari.

  • Esportate DEB_BUILD_OPTIONS=nostrip,noopt per compilare il pacchetto Debian.

Vedere Policy 10.1 per maggiori informazioni.


13.7.2.2 Controllo delle dipendenze dalle librerie

Usate ldd per scoprire da quali librerie dipende un programma:

     $ ldd /bin/ls
             librt.so.1 => /lib/librt.so.1 (0x4001e000)
             libc.so.6 => /lib/libc.so.6 (0x40030000)
             libpthread.so.0 => /lib/libpthread.so.0 (0x40153000)
             /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Affinch� ls funzioni in un ambiente chroot le librerie di cui sopra devono essere disponibili all'interno di esso.

Utili anche i seguenti comandi:

  • strace: traccia le chiamate di sistema ed i segnali

  • ltrace: traccia le chiamate alle librerie


13.7.2.3 Debugging con gli strumenti per scoprire i memory leak

Parecchi sono gli strumenti per il riconoscimento dei memory leak in Debian.

  • njamd

  • valgrind

  • dmalloc

  • electric-fence

  • memprof

  • memwatch (non � impacchettato, prendetelo da memwatch.)

  • mpatrol

  • leaktracer

  • libgc6

  • Insure++ da Parasoft. (non-free, commerciale, a pagamento)

Vedere anche Debugging Tools for Dynamic Storage Allocation and Memory Management.


Debian GNU/Linux Reference Guide
Prev Home Next

 
 
  Published under the terms of the GNU General Public License Design by Interspire