Newsgroup: it.comp.os.linux.iniziare
Titolo: Debugger gdb ed emacs

Sto usando emacs come editor per la programmazione... mi piace veramente
tantissimo, comincio ad avere in testa un sufficiente numero di keystrokes
e ogni tanto mi spavento della putenza di quest'affare :-)
In windows, per il c++ usavo dev c++. Aveva un debugger che nonostante
fosse afflitto da qualche bug (paradossale ma vero) era molto comodo da
usare: permetteva di inserire nel codice sorgente dei "breakpoint", in
modo che poi potessi controllare il flusso del programma, osservare il
valore delle variabili in un determinato momento e capire ESATTAMENTE
quale istruzione generasse un errore o desse risultati imprevisti. Se uso
emacs + gdb, gdb mi chiede che file binario voglio debuggare. Fatto questo
l'unico pulsante utile che riesco ad utilizzare è: "run program". Così
gdb è utile perchè in caso di SEGFAULT mi dice quale funzione lo ha
generato, ma non si rivela utile quanto il debugger di devc++. Ora, visto
che sto utilizzando due programmi GNU (Xemacs non è proprio GNU ma è un
parente), DEVONO essere fichissimi, potentissimi e DEVONO avere ogni
funzionalità che io possa immaginare implementata (è una legge fisica).
Quindi: come ottengo le funzionalità di cui ho parlato in gdb-emacs?

Aut-Aut <n...@mail.none> writes:

per inserire un breakpoint io faccio fare b:nomefile.c:<numeroriga>
e poi n(next) oppure s(step)
cosi' in un buffer fai il debug, e nell'altro vedi un puntatore di
riga all'interno del file sorgente.
per stampare il valore di una variabile: print variabile
comunque dal sito della gnu, ti puoi scaricare i manuali, sia di emacs
che di gdb.
ivano

 generato, ma non si rivela utile quanto il debugger di devc++.
salvo che se tanto mi da tanto il "debugger| di devc++ e` un frontend a
gdb (ma potrei sbagliare), hai detto di compilare con i simboli di debug
di gdb, che sono molto ma molto comodi? ;)
-- 
#!/bin/rik0               | Seasons don't fear the reaper
for whom the bell trolls? | Nor do the wind, the sun or the rain
                          | (BOC)



si ma così non è ben integrato con emacs...
non esiste un comando in emacs che permetta, che ne so, di inserire un
break point sulla riga corrente? con M-x gdb-* non c'è nulla di
interessante

 interessante
"In any source file, the Emacs command C-x SPC (gdb-break) tells 
GDB to set a breakpoint on the source line point is on."
ivano

 ivano
si nel frattempo avevo trovato anche io quella frase...
SPC sta per spazio no?
Nessun comando associato :-(
Ho Xemacs installato dagli rpm di una mdk 9.2, gli hanno fatto qualche
operazione chirurgica?

 GDB to set a breakpoint on the source line point is on."
Ohh ... finalmente qualcuno che conosce di emacs il mitico CTRL + SPACE
sulla linea del codice sorgente ....

Aut-Aut <n...@mail.none> writes:


credo proprio di si'. Comunque puoi sempre fare: M-x gud-break
ivano

Aut-Aut <n...@mail.none> scriveva: 
 >>> si ma così non è ben integrato con emacs...  non esiste un comando
 >>> in emacs che permetta, che ne so, di inserire un break point sulla
 >>> riga corrente? con M-x gdb-* non c'è nulla di interessante
 >> 
 >> "In any source file, the Emacs command C-x SPC (gdb-break) tells GDB
 >> to set a breakpoint on the source line point is on."
 A> si nel frattempo avevo trovato anche io quella frase...
 A> SPC sta per spazio no?
 A> Nessun comando associato :-(
,----[ Su GNU Emacs 21.3.50.2 ]
| C-x SPC runs the command gud-break
|    which is an interactive compiled Lisp function.
| It is bound to C-x SPC, C-x C-a C-b.
| (gud-break ARG)
| 
| Set breakpoint at current line or address.
`----
,----[ Su XEmacs 21.4 (patch 15) ]
| C-x SPC runs `gdb-break'
| 
| `gdb-break' is an interactive compiled Lisp function
|   -- loaded from "gdb"
`----
Funziona in entrambi i casi.
-- 
lg, You Will Be Assimilated. You Love Gnus.

 operazione chirurgica?
Xemacs ??? Xemacs è un progetto derivato da emacs ma segue altre strade di
sviluppo.
Questo è emacs
/mnt/cdrom/Mandrake/RPMS2/emacs-21.3-7mdk.i586.rpm
/mnt/cdrom/Mandrake/RPMS2/emacs-X11-21.3-7mdk.i586.rpm
^^^^^^^^^^ questo è emacs per X
Questo è Xemacs
/mnt/cdrom/Mandrake/RPMS2/xemacs-21.4.14-1mdk.i586.rpm
/mnt/cdrom/Mandrake/RPMS2/xemacs-extras-21.4.14-1mdk.i586.rpm



si avete ragione, perchè il comando esista bisogna attivare il gdb in una
shell di emacs. Credevo che il comando esistesse comunque e ritornasse un
errore, io lo provavo sul un file sorgente...