From owner-freebsd-questions Fri Mar 30 21:16:45 2001 Delivered-To: freebsd-questions@freebsd.org Received: from guru.mired.org (okc-65-26-235-186.mmcable.com [65.26.235.186]) by hub.freebsd.org (Postfix) with SMTP id AC29F37B718 for ; Fri, 30 Mar 2001 21:16:39 -0800 (PST) (envelope-from mwm@mired.org) Received: (qmail 9862 invoked by uid 100); 31 Mar 2001 05:16:39 -0000 From: Mike Meyer MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15045.26679.83190.709362@guru.mired.org> Date: Fri, 30 Mar 2001 23:16:39 -0600 To: Todd Enersen Cc: questions@freebsd.org Subject: Re: problems with gdb??? In-Reply-To: <33608139@toto.iv> X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid X-face: "5Mnwy%?j>IIV\)A=):rjWL~NB2aH[}Yq8Z=u~vJ`"(,&SiLvbbz2W`;h9L,Yg`+vb1>RG% *h+%X^n0EZd>TM8_IB;a8F?(Fb"lw'IgCoyM.[Lg#r\ Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Todd Enersen 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. 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 > > > > 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?? >

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? >

Todd Enersen >
  > > --------------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