Good C debugger ?


 
Thread Tools Search this Thread
Top Forums Programming Good C debugger ?
# 1  
Old 02-02-2010
Good C debugger ?

I'm a C newbie using gcc. I wrote a program but a part of it outputs gibberish onto the terminal. Its weird because identical parts of the program work correctly in another program I wrote Smilie. My program uses c99 + some POSIX headers. It compiles with no errors/warnings even though I have included all the flags I could get hold of.

I do not understand how to use -g so can anybody recommend a C debugger (that speaks english, lol)? At this point I am even willing to switch to Windows...

Can anybody at least add other useful flags ?

Quote:
gcc -std=c99 -D_POSIX_C_SOURCE=200112L -pedantic -O -pipe -g -fstack-protector-all -fstack-protector -funit-at-a-time -Wall -Wextra -Wformat-security -Wformat=2 -Wuninitialized -Winit-self -Wmissing-include-dirs -Wunused -Wfloat-equal -Wshadow -Wunsafe-loop-optimizations -Wbad-function-cast -Wc++-compat -Wcast-qual -Wcast-align -Wconversion -Wlogical-op -Waggregate-return -Wold-style-definition -Wpacked -Wpadded -Wredundant-decls -Wnested-externs -Winline -Winvalid-pch -Wvariadic-macros -Wvla -Wdisabled-optimization -Wstack-protector -Wwrite-strings -Wlong-long programname.c
# 2  
Old 02-02-2010
Have you heard of gdb - The GNU Debugger ?
# 3  
Old 02-02-2010
If you've can, install DDD, which is a graphical frontend to gdb (and a few others). Then, compile your program using
Code:
gcc -Wall -ggdb -o programname programname.c

Don't enable any optimization settings, as that will make debugging all the harder. Same goes for inlineing, ...

Start it using
Code:
ddd ./progname

, and start debugging.

See also: https://www.unix.com/man-page/Linux/1/ddd/
# 4  
Old 02-02-2010
Yes, I have heard and used it before with no success. I'm trying to debug a CGI program written in C. It seems to segfault when using getenv. I tried running the program with Firefox and using sleep(30) to make time to attach PID but it still segfaults on this line.

Any ideas ?

PHP Code:
char DOCUMENTROOT[128] = "";
strcat(DOCUMENTROOTgetenv("DOCUMENT_ROOT")); // This line is ok, right ? I mean it is far less than 128 chars long. 
# 5  
Old 02-02-2010
Do you call any other environmental var C routines?

Are you sure your CGI has permissions to call these routines?

---------- Post updated at 16:15 ---------- Previous update was at 16:12 ----------

Also, I've not programmed in C for a very long time.... so maybe this is a dumb suggestion, sorry:

getenv() returns a pointer to a char.

You defined

Code:
char DOCUMENTROOT[128] = "";

Does this work?

Code:
char *DOCUMENTROOT[128] = "";

# 6  
Old 02-02-2010
Actually, the problem is using "DOCUMENT_ROOT" because it is apache specific. Using "PATH" works.

So how could I debug my CGI program using apache and using GDB ??? (Like I said, running my CGI w/ Firefox and attaching its PID to GDB does not solve the problem.)

Seems I will have to temporarily substitute the getenv's with strings. Smilie
# 7  
Old 02-02-2010
Quote:
Originally Posted by cyler
Seems I will have to temporarily substitute the getenv's with strings.
Good idea.

Environmental vars often cause problems in CGI.

Sorry, I can't help with C CGI debugging. I focus on PHP for Web Development.

On the other hand, I have always found that print statements work well when debugging, even if it is so crude, it works well.

Maybe you can simply print to a string and pass it to your HTML when debugging. That is what I do, which does sound a bit primitive, I know.

Again, sorry, I use PHP on the server side for most Web Development.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

How to use a debugger a piped program ?

Hi, I have 1 program that writes in to the STDIN of another program as shown below. Both programs contain 4 or 5 lines & would terminate in under a second. $ driver.exe | program.exe How is that I can attach the debugger (gdb) to program.exe ? so that I can step through and see what all... (0 Replies)
Discussion started by: RipClaw
0 Replies

2. Programming

Alternative debugger to GNU insight debugger

GNU insight debugger is not available now a days and it is required to debug/inspect assembly code as written in the book Assembly Language Programming step by step in Linux so my question is; is there any alternative to insight that I can use instead of insight in which I can get the same... (5 Replies)
Discussion started by: vectrum
5 Replies

3. Solaris

Csharp Debugger

I want to debug my csharp project on solaris. Is anyone can tell me a program or anything else for this?? (0 Replies)
Discussion started by: dConstantine
0 Replies

4. Programming

Dbx Debugger

I have tried lots of stuff but i can't get it working, i have also found a Thread in this Forum about it but it didn't describe how the program has to be run ect. My issue is that i want to run a program with multiple arguments eg. ./myprog arg1 arg2 arg3 arg4 arg5 with dbx, but i cant get... (8 Replies)
Discussion started by: alcatros
8 Replies

5. Programming

multiprocess debugger

Hi, can somebody advise on a better multiprocess debugger? I heard with gdb we face lots of problems in multiprocess scenario currently i am using gdb debugger for a single process multithreaded project.. since i am supposed to work on a multiprocess now, i googled and came across... (1 Reply)
Discussion started by: rvan
1 Replies

6. UNIX for Dummies Questions & Answers

unix debugger

hello i'm working on cobol with unix just want to know if there is any command in unix that related to debugger i've been told something like anim command i try to search for man anim result :ERROR: Manual entry does not exist for page anim does anyone have an answer ? another thing ... (1 Reply)
Discussion started by: naamas03
1 Replies

7. UNIX for Advanced & Expert Users

Kernel debugger

hi, I want to have a debugger for my kernel and I am using kernel-2.6.11 n i am having patches kdb-v4.4-2.6.11-common-1.bz2 kdb-v4.4-2.6.11-i386-1.bz2. I applied both. I did make menuconfig with options CONFIG_KDB n CONFIG_FRAME_POINTER being set. when i tried to compile kernel. I got an... (0 Replies)
Discussion started by: sriram.ec
0 Replies

8. UNIX for Advanced & Expert Users

where to get Kernel debugger

hi , does anybody know about where to get kernel debugger for linux kernel version 2.6.11. I found it in oss.sgi.com.But there i have to download through ftp,which is not enabled here. So can anybody tell where can i get kdb(kernel debugger)through http. thanks in advance sriram (0 Replies)
Discussion started by: sriram.ec
0 Replies

9. Programming

how to use a c debugger in linux/unix

can anyone suggest tutorial sites for using c debugger in linux/unix environments (1 Reply)
Discussion started by: wojtyla
1 Replies

10. Programming

wdb debugger

Hi all, is it possible to skip a function with the wdb debugger ? could be helpful instead of compiling the whole bunch again does someone know how to do this ? thx Sven (4 Replies)
Discussion started by: Sven28
4 Replies
Login or Register to Ask a Question