Newsgroup: it.comp.os.linux.iniziare
Titolo: GDB print di puntatore a file.

Ciao a tutti, ringrazio in anticipo chi vorrà aiutarmi:
In fase di debug con gdb non riesco a vedere l'intero contenuto del
file puntato dalla mia variabile, come posso fare?
Esempio
Io ho la mia variabile puntatore a file "puntatore" (evviva la
fantasia :))
Il file a cui punta contiene la codifica MIME di una mail.
quando do il comando:
(gdb) print *puntatore
l'output è: 
$12 = {_flags = -72538992,
  _IO_read_ptr = 0x40017000 "Da: IO=20\nInviato: marted=EC 8 marzo
2005 11.23\nA: '
ma...@mail.it
'\nOggetto: Prova allegato
BAS\nPriorit=E0: Alta\n\n\n\n------_=_NextPart_000_01C523CF.891D7A20\nContent-Type:
application/"...,
  _IO_read_end = 0x40017000 "Da: IO=20\nInviato: marted=EC 8 marzo
2005 11.23\nA: '
ma...@mail.it
'\nOggetto: Prova allegato
BAS\nPriorit=E0: Alta\n\n\n\n------_=_NextPart_000_01C523CF.891D7A20\nContent-Type:
application/"...,
  _IO_read_base = 0x40017000 "Da: IO=20\nInviato: marted=EC 8 marzo
2005 11.23\nA: '
ma...@mail.it
'\nOggetto: Prova allegato
BAS\nPriorit=E0: Alta\n\n\n\n------_=_NextPart_000_01C523CF.891D7A20\nContent-Type:
application/"...,
  _IO_write_base = 0x40017000 "Da: IO=20\nInviato: marted=EC 8 marzo
2005 11.23\nA: '
ma...@mail.it
'\nOggetto: Prova allegato
BAS\nPriorit=E0: Alta\n\n\n\n------_=_NextPart_000_01C523CF.891D7A20\nContent-Type:
application/"...,
  _IO_write_ptr = 0x40017000 "Da: IO=20\nInviato: marted=EC 8 marzo
2005 11.23\nA: '
ma...@mail.it
'\nOggetto: Prova allegato
BAS\nPriorit=E0: Alta\n\n\n\n------_=_NextPart_000_01C523CF.891D7A20\nContent-Type:
application/"...,
  _IO_write_end = 0x40017000 "Da: IO=20\nInviato: marted=EC 8 marzo
2005 11.23\nA: '
ma...@mail.it
'\nOggetto: Prova allegato
BAS\nPriorit=E0: ---Type <return> to continue, or q <return> to
quit---
Alta\n\n\n\n------_=_NextPart_000_01C523CF.891D7A20\nContent-Type:
application/"...,
  _IO_buf_base = 0x40017000 "Da: IO=20\nInviato: marted=EC 8 marzo
2005 11.23\nA: '
ma...@mail.it
'\nOggetto: Prova allegato
BAS\nPriorit=E0: Alta\n\n\n\n------_=_NextPart_000_01C523CF.891D7A20\nContent-Type:
application/"...,
  _IO_buf_end = 0x40018000 "Da: IO=20\nInviato: marted=EC 8 marzo 2005
11.23\nA: '
ma...@mail.it
'\nOggetto: Prova allegato BAS\nPriorit=E0:
Alta\n\n\n\n------_=_NextPart_000_01C523CF.891D7A20\nContent-Type:
application/"..., _IO_save_base = 0x0, _IO_backup_base = 0x0,
_IO_save_end = 0x0,
  _markers = 0x0, _chain = 0x4212ef80, _fileno = 5, _flags2 = 0,
  _old_offset = 7483224, _cur_column = 0, _vtable_offset = 0 '\0',
  _shortbuf = "/", _lock = 0x8050888, _offset = -1, __pad1 = 0x722f52,
  __pad2 = 0x8050894, _mode = -1,
  _unused2 = "SHB/r\000 SHS/r\000 VB/r\000 VBE/r\000 VBS/r\000
SVB/r\000\nCOM/r\000\000\000\000\000"}
mentre a me interessa vedere proprio quello che segue i puntini di
sospensione di
"Da: IO=20\nInviato: marted=EC 8 marzo 2005 11.23\nA:
'
ma...@mail.it
'\nOggetto: Prova allegato BAS\nPriorit=E0:
Alta\n\n\n\n------_=_NextPart_000_01C523CF.891D7A20\nContent-Type:
application/"...
Come fare?
Grazie.

 file puntato dalla mia variabile, come posso fare?
]zac[
... del puntatore a un array di char, non di un file.
Conosco 4 soluzioni:
- cercare tra i settaggi di gdb e modificare le dimensioni dell'array di
char che viene stampanto.
- invece di print usare il comando che stampa il contenuto della memoria
(dump?) che permette di specificare la lunghezza del 'dump'.
- usare print a partire da un indirizzo di memoria più alto (p punt-var, p
punt-var + 100, p punt-var + 1000, ecc.).
- inserire nel codice la stampa del contenuto della variabile nello std-out
(console).