Good C debugger ?


 
Thread Tools Search this Thread
Top Forums Programming Good C debugger ?
# 15  
Old 02-03-2010
Quote:
Originally Posted by cyler
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. 
it is possible for getenv() to return null! Test for that case or strcat will crash in it!
# 16  
Old 02-04-2010
Quote:
Originally Posted by cyler
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

Writing CGI scripts in C is kind of clumsy. You can artificially create the environment your application expects when running it in GDB.

Create the environment variables for the application that apache would usually set up. You would only need to create the environment variables that your application requires. Thus, when you run GDB make an environment variable to simulate apache.

Code:
$ export DOCUMENT_ROOT="foo"
$ gdb myscript.cgi

The output will be ugly because it will be spitting out HTML.

Quote:
it is possible for getenv() to return null! Test for that case or strcat will crash in it!
Indeed. You should do as Corona688 has said.

Code:
char *p;
if( !( p = getenv( "DOCUMENT_ROOT" ) ) ) {
  // Do something
}
else
  strcat(DOCUMENTROOT, p);

You should also make sure p is not larger than DOCUMENTROOT or you shall cause a buffer overflow.
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