gdb is a command line debugger.
There are several GUI frontends to gdb, eg see here:
http://cboard.cprogramming.com/progr...linux-ddd.html
However, altho it seems very awkward at first, I'd recommend finding a gdb tutorial and trying to use it on the command line for a while. Once you can remember a few simple commands (run, list, break, cont, print, backtrace) and understand the output, using gdb in terminal is pretty quick and easy, since you are compiling and testing in the terminal too:
Code:
[root~/C] gcc test.c
[root~/C] ./a.out
Segmentation fault
// damn, what'd I do this time?
[root~/C] gcc -g test.c // use -g to compile with debugging symbols
[root~/C] gdb ./a.out // start gdb with the executable loaded
(gdb) run
Starting program: /media/sda6/root/C/a.out
Program received signal SIGSEGV, Segmentation fault.
memcpy () at ../sysdeps/x86_64/memcpy.S:91
91 movl %ecx, (%rdi)
Current language: auto; currently asm
(gdb) backtrace
#0 memcpy () at ../sysdeps/x86_64/memcpy.S:91
#1 0x00000000004004e7 in main () at test.c:8
(gdb) quit
The program is running. Exit anyway? (y or n) y
[root~/C]
All the info handily remains in the terminal, and I have the line number that led to the seg fault.