Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Mar 2001 23:16:39 -0600
From:      Mike Meyer <mwm@mired.org>
To:        Todd Enersen <tee@fireclick.com>
Cc:        questions@freebsd.org
Subject:   Re: problems with gdb???
Message-ID:  <15045.26679.83190.709362@guru.mired.org>
In-Reply-To: <33608139@toto.iv>

next in thread | previous in thread | raw e-mail | index | archive | help
Todd Enersen <tee@fireclick.com> types:
> --------------DA50410AF9311B33DEC3A86F
> Content-Type: text/plain; charset=us-ascii
> Content-Transfer-Encoding: 7bit

Please don't do this. Simply send plain text, not both plain text and
ascii.

> I've installed the 4.2 distribution of FreeBSD. While porting an
> application to the FreeBSD platform, I've run into a problem with the
> gdb that ships as part of the distribution.
> 
> Consider the following small section of code:
> 
> 
> > > more test.c
> >
> > void Init(char* foo, int bar)
> > {
> >
> > }
> >
> > int main(int argc, char* argv[])
> > {
> >    Init("foo", 1234);
> > }
> >
> 
> Now consider the output from gdb:
> 
> > gdb mytest
> > GNU gdb 4.18
> > Copyright 1998 Free Software Foundation, Inc.
> > GDB is free software, covered by the GNU General Public License, and you are
> > welcome to change it and/or distribute copies of it under certain conditions.
> > Type "show copying" to see the conditions.
> > There is absolutely no warranty for GDB.  Type "show warranty" for details.
> > This GDB was configured as "i386-unknown-freebsd"...
> > (gdb) b main
> > Breakpoint 1 at 0x804848a: file test.c, line 10.
> > (gdb) r
> > Starting program: /usr/home/tee/work/testproxy/mytest
> >
> > Breakpoint 1, main (argc=-1077937256, argv=0x80483ed) at test.c:10
> > 10         Init("foo", 1234);
> > (gdb)
> > (gdb) p argv[0]
> > $1 = 0xff6de850 Error reading address 0xff6de850: Bad address
> > (gdb)
> >
> 
> Now should argc and argv be defined to be valid??

That example works fine for me. I'm running 4-STABLE as of last sunday,
using gcc version 2.95.2 19991024 (release).

> This corruption of how gdb views the arguements continues, and makes it
> very impossible to actually debug real programs.
> 
> I've also tried to download and build gdb 5.0, but it fails to compile
> under FreeBSD.
> 
> Any suggestions?

Try doing a single step before checking p. It's possible there's some
function startup code that needs to be run before the arguments will
show up properly, though I wouldn't expect it in C code.

	<mike
--
Mike Meyer <mwm@mired.org>			http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.
> Todd Enersen
> 
> 
> --------------DA50410AF9311B33DEC3A86F
> Content-Type: text/html; charset=us-ascii
> Content-Transfer-Encoding: 7bit
> 
> <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
> <html>
> I've installed the 4.2 distribution of FreeBSD. While porting an application
> to the FreeBSD platform, I've run into a problem with the gdb that ships
> as part of the distribution.
> <p>Consider the following small section of code:
> <br>&nbsp;
> <blockquote TYPE=CITE>
> <pre>> more test.c
> 
> void Init(char* foo, int bar)
> {
> 
> }
> 
> int main(int argc, char* argv[])
> {
> &nbsp;&nbsp; Init("foo", 1234);
> }</pre>
> </blockquote>
> 
> <p><br>Now consider the output from gdb:
> <blockquote TYPE=CITE>
> <pre>gdb mytest
> GNU gdb 4.18
> Copyright 1998 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.&nbsp; Type "show warranty" for details.
> This GDB was configured as "i386-unknown-freebsd"...
> (gdb) b main&nbsp;
> Breakpoint 1 at 0x804848a: file test.c, line 10.
> (gdb) r
> Starting program: /usr/home/tee/work/testproxy/mytest&nbsp;
> 
> Breakpoint 1, main (argc=-1077937256, argv=0x80483ed) at test.c:10
> 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Init("foo", 1234);
> (gdb)&nbsp;
> (gdb) p argv[0]
> $1 = 0xff6de850 Error reading address 0xff6de850: Bad address
> (gdb)</pre>
> </blockquote>
> 
> <p><br>Now should argc and argv be defined to be valid??
> <p>This corruption of how gdb views the arguements continues, and makes
> it very impossible to actually debug real programs.
> <p>I've also tried to download and build gdb 5.0, but it fails to compile
> under FreeBSD.
> <p>Any suggestions?
> <p>Todd Enersen
> <br>&nbsp;</html>
> 
> --------------DA50410AF9311B33DEC3A86F--
> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-questions" in the body of the message
> 

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15045.26679.83190.709362>