Newsgroup: it.comp.os.linux.development
Titolo: GDB e ncurses.h

innanzitutto salve a tutti
allorchè :D
è da poco che ho fatto il mio primo programma con le ncurses.
va tutto bene ma quando cerco di fare il debug 
crasha alla funzione initscr();
quando eseguo il programma funziona tutto
ma quando entro in modalità debug alla suddetta funzione si ferma e mi dice 
"exited with code 1" ... + o - 
premetto che uso GDB attraverso il Kdevelop ..anche se è piuttosto
irrilevante...
volevo chiedere se qualcuno ha avuto il mio stesso problema ...
thx
-- 
KiloByte
Powered by Debian GNU/linux

 "exited with code 1" ... + o -
Devi postare il pezzo di codice incriminato.
Nicola.
-- 
chi va pian va san e va lontan

 Nicola.
beh 
è un semplice programma con fatto con curses
se sai come funzionano...
#include <ncurses.h>
int main()
{
        ...
        initscr();       //<-<--qui in debug mode crasha ma non quando lo eseguo
        .....
        closewin();


 }
scusate al posto di closewin() va endwin() 


 scusate al posto di closewin() va endwin()
// ctest.c
int main(int argc, char **argv)
{
        initscr();//
        endwin();
return(0);
}
// fine ctest.c
(gdb) file ctest
Reading symbols from ctest...done.
(gdb) run
Starting program: /home/nicola/Desktop/ctest
Program exited normally.
Direi che non e' un problema di gdb.


 se sai come funzionano...
Beh, di sicuro non sono un guru, ma credo siano poche le funzioni delle
ncurses che non ho mai provato (almeno la sintassi forse me la ricordo ;))


 
ripeto
se io avvio normalmente funziona tutto
se metto un break alla funzione initscr() crasha...
qui la linea 162 è dove c'è la funzione initscr();
 gdb /home/kilobyte/prgs/xxxuartp/src/xxxuartp -fullname -nx -quiet
(gdb) set edit off 
(gdb) (gdb) 
(gdb) set confirm off 
(gdb) set print static-members off 
(gdb) tty /dev/pts/5 
(gdb) set width 0 
(gdb) set height 0 
(gdb) set stop-on 1 
(gdb) handle SIG32 pass nostop noprint 
(gdb) handle SIG43 pass nostop noprint 
(gdb) set print asm-demangle on 
(gdb) cd /home/kilobyte/prgs/xxxuartp/src 
(gdb) break xxxuartp.c:162 
Breakpoint 1 at 0x8048f6e: file xxxuartp.c, line 162.
(gdb) run 
Stopped due to shared library event
(gdb) continue 
Stopped due to shared library event
(gdb) continue 
Stopped due to shared library event
(gdb) continue 
Breakpoint 1, main (argc=1, argv=0xbffffcd4) at xxxuartp.c:162
/home/kilobyte/prgs/xxxuartp/src/xxxuartp.c:162:3832:beg:0x8048f6e
(gdb) backtrace 
#0  main (argc=1, argv=0xbffffcd4) at xxxuartp.c:162
(gdb) info breakpoints 
Num Type           Disp Enb Address    What
1   breakpoint     keep y   0x08048f6e in main at xxxuartp.c:162
        breakpoint already hit 1 time
(gdb) frame 0 
#0  main (argc=1, argv=0xbffffcd4) at xxxuartp.c:162
/home/kilobyte/prgs/xxxuartp/src/xxxuartp.c:162:3832:beg:0x8048f6e
(gdb) next 
Program exited with code 01.


 (gdb) continue
Ho provato a mettere il breakpoint in main, a fare backtrace e info
breakpoint e next ma mi continua ad uscire normalmente.
Mi sa che sono tutti quei parametri di gdb che ti incasinano la vita, prova
a cavarne un po', di piu' non saprei.



Potrebbe essere un problema di quella versione di gdb o di qualche libreria
installata.
Alessandro.

 prova a cavarne un po', di piu' non saprei.
...
con che comando lo avvi il gdb?


 libreria installata.
è quello che penso anch'io
ma in questo caso ce l'ho nel sedere


 con che comando lo avvi il gdb?
Ho appena provato con tutti i parametri che gli hai passato tu e funziona.
Prova a eseguire solo il programma che ho postato ( initscr() e endwin() ),
magari ti funziona.


 Nicola.
ma lo fai dalla shell tu?
sennò prova a farlo tramite kdevelop ...
