GNU Tools
La distribuzione GNU è un package software
che include tutta una serie di tools.
Strumenti per la creazione, lo sviluppo ed la
correzione del codice: compilatori, debugger.
Programmi per la creazione di immagini e di
testi o per il display di dati.
La sue caratteristiche più importanti sono:
il supporto per qualsiasi piattaforma,
essere completamente gratuito!
Debugging del codice
Ogni piattaforma ha un suo debugger
proprietario (xdb su HP, dbx su OSF, Sun ), ma
su tutte è possibile installare quello GNU: gdb
Esistono poi delle interfaccia grafiche (ddd, dde)
che rendono più comodo l’utilizzo del debugger.
La possibilità di utilizzare un debugger è
subordinata all’utilizzo delle opportune opzioni
di compilazione (in genere -g).
Va notato che tali opzioni vanno utilizzate
quando necessario, poiché sono incompatibili
con altre molto più importanti, come quelle di
ottimizzazione.
Una semplice sessione di debug
>cc -g myprog.c -o myprog
>./myprog
00
1 -1
Floating exception
>gdb myprog
GDB is free software and you are welcome to distribute copies of it
under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.14 (i486-slackware-linux),
Copyright 1995 Free Software Foundation, Inc...
(gdb) list
1
#include <stdio.h>
2
3
main(){
4
int i,j;
5
6
for (i=0;i<5;i++){
7
j=i/(i-2);
8
printf("%d %d \n",i,j);
9
}
10 }
Una semplice sessione di debug
(gdb) break 5
Breakpoint 1 at 0x80004a6: file myprog.c, line 5.
(gdb) break 7
Breakpoint 2 at 0x80004c0: file myprog.c, line 7.
(gdb) run
Starting program: /home/volpe/CNTC/myprog
Breakpoint 1, main () at myprog.c:6
6
for (i=0;i<5;i++){
(gdb) step
7
j=i/(i-2);
(gdb)
8
printf("%d %d \n",i,j);
(gdb)
00
.......
1 -1
.......
Program received signal SIGFPE, Arithmetic exception.
0x80004cf in main () at myprog.c:7
7
j=i/(i-2);
(gdb)quit
CVS è basato su
RCS
Gestione del codice
Nello sviluppo e nel mantenimento del software,
sono utili i tools per il controllo delle versioni.
Essi consentono di tenere traccia delle
modifiche attraverso una successione di releases
e di risolvere i conflitti che sorgono quando più
sviluppatori sono coinvolti in un progetto.
 RCS è uno dei più semplici.
 CVS (Concurrent Versions System) è
probabilmente il più diffuso.
RCS e CVS si trovano nel sito GNU
 http://www.gnu.org/
CVS
• CVS mantiene il codice in una gerarchia di
directory detta “source repository”
• Sviluppando nell’ambiente CVS, una modifica
diviene permanente se ne viene fatto un “commit”.
• Se più sviluppatori editano lo stesso codice,
CVS esegue un merge delle modifiche, segnalando
eventuali conflitti prima di accettare il commit..
•Dei tag consentono di recuperare la versione
relativa a qualsiasi data specificata.
•CVS produce un file di patch per aggiornare
precedenti distribuzioni alla release più recente.
Formati grafici
X11 Bitmap (ASCII)
XPM (binario)
PPM/PBM/PGM (binario/ASCII)
gif (binario,compresso)
jpeg (binario,compresso)
tiff (binario, non/compresso)
Postscript (ASCII)
pdf (Portable Document Format)
Il PostScript
Il PostScript rappresenta un formato di
output standard sia per applicazioni
grafiche che per word processor.
Il browser di file postscript supportato su
tutte le piattaforme è ghostscript che ha
una interfaccia molto rudimentale.
Esistono perciò interfacce più comode
per ghostscript: ghostview e gv.
Pstops,
psmerge,
psselect,
psbook, ps2pdf
Manipolare il PostScript
Purtroppo non è possibile modificare un
file postscript direttamente.
Esiste tuttavia l’utility pstoedit che trasforma il
postscript in formati grafici modificabili da altre
applicazioni (xfig, tgif, FrameMaker).
 http://ftp.x.org/contrib/applications/pstoedit/
Altre utilities convertono file postscript in
formati diversi: ps2ascii, pstogif, ps2pdf
Le psutils modificano la disposizione delle
pagine di un documento postscript :
psbook, psnup, psselect, psmerge,pstops
 http://www.tardis.ed.ac.uk/home/ajcd/psutils
Convertitori
Esistono convertitori tra i diversi formati di file
testo (LaTeX, ascii, html, Word).
latex2html
http://www.rzg.mpg.de/rzg/software/latex2html
html2ascii
http://pageplus.com/~hsf/sources/html2ascii/
MSWordView converte binari Word in html.
www.csn.ul.ie/~caolan/docs/MSWordView.html
La conversione tra diversi formati grafici in
genere si fa con XV o con altri programmi per la
creazione e modifica delle immagini che hanno
già al loro interno la possibilità di importare ed
esportare i vari formati.
Tools Grafici: XV
• Browser
• non ha un suo
formato di file
• ha dei Filtri
grafici
• esporta nei
seguenti formati:
• XPM,XBM;
gif,tiff, postscript
,jpeg,
PPM7PGM/PBM
http://www.ccs.uky.edu/XV
ftp.cs.columbia.edu
Tools Grafici: tgif
• Ha un formato
proprio: .obj
• Importada vari
formati grafici
(Incluso EPS)
• Utilizza i convertitori
standard
• Genera in output
direttamente
PostScript, HTML,
GIF, ASCII, EPS,
EPSI
http://bourbon.cs.umd.edu:8001/tgif/
Tools grafici: XPaint
• Non ha un suo formato
• Molto utile per la creazione/modfica di bitmap
(icone)
• Importa/esporta gif, jpeg, XPM, XBM,
PPM/PBM/PGM, Postscript
Tools grafici: Gimp
GNU Image Manipulation Program:
È uno dei tool più nuovi e versatili per la
composizione ed il ritocco di immagini…
attenzione utilizza pesantemente le risorse di X!
/www.XCF.Berkeley.EDU/~gimp/gimp.html
Riferimenti
Per tutti i tools distribuiti da GNU, il
sito di riferimento è :
http://www.gnu.org
sia per i manuali (/doc) che per la
distribuzione di package (/software).
Molti manuali possono essere trovati
in:
http://www.cslab.vt.edu/manuals
Scarica

Debugging del codice