Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
To: Bill Pursell <bill.pursell@gmail.com>
Cc: gdb@sourceware.org, jimb@red-bean.com
Subject: Re: scope in nested function
Date: Fri, 31 Mar 2006 13:59:00 -0000	[thread overview]
Message-ID: <1143797489.7516.31.camel@localhost.localdomain> (raw)
In-Reply-To: <442CC4BB.5070709@gmail.com>

Is this something gdb was never designed to do ? A quick search in the
doco didn't reveal anything for me . The only reference is that of
Pascal programs not supporting debug for nested functions. 

ramana@arnor:~$ arm-none-eabi-gcc -v
Using built-in specs.
Target: arm-none-eabi
Configured
with: /mnt/tools/fsf/build/combined-arm-none-eabi-svn-4-1-branch-2006-03-30/configure --target=arm-none-eabi --prefix=/mnt/tools/fsf/install/arm-none-eabi-svn-4-1-branch-2006-03-30 --enable-languages=c --disable-nls --with-newlib --disable-gdbtk --disable-libssp
Thread model: single
gcc version 4.1.1 20060330 (prerelease)


ramana@arnor:~$ arm-none-eabi-gcc -g nestedfns.c
ramana@arnor:~$ arm-none-eabi-gdb a.out
GNU gdb 6.4.50.20060103-cvs
Copyright (C) 2006 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 "--host=i686-pc-linux-gnu
--target=arm-none-eabi".../home/ramana/.gdbinit:1: Error in sourced
command file:
Junk in argument list: " brkoninsnraw"

(gdb) b main::foo
Can't find member of namespace, class, struct, or union named
"main::foo"
Hint: try 'main::foo<TAB> or 'main::foo<ESC-?>
(Note leading single quote.)
(gdb) b foo
Function "foo" not defined.
Make breakpoint pending on future shared library load? (y or [n]) n
(gdb) b foo.1958
Can't find member of namespace, class, struct, or union named "foo.1958"
Hint: try 'foo.1958<TAB> or 'foo.1958<ESC-?>
(Note leading single quote.)
(gdb)


Is gdb even designed to do this. ? A google reveals this thread where a
user has mentioned problems with nested functions . The mechanism though
which is used is only using line numbers .... so .... we don't really
know if it was ever designed to work ! 

http://sourceware.org/ml/gdb/2005-02/msg00141.html

cheers
Ramana


On Fri, 2006-03-31 at 06:57 +0100, Bill Pursell wrote:
> I'm not sure how to reference a variable in a nested function from gdb.
> In the gdb session below, there are 2 things I don't understand
> how to do:
> 
> 1) how do I set a breakpoint in foo? (other than by referencing a line
>       	number)
> 2) when I'm in foo, how do I reference i?
> 
> 
> #include <stdio.h>
> 
> int
> main()
> {
>       auto void foo(void);
>       int i = 0;
>       foo();
>       return 0;
> 
>       void foo(void) {
>           i += 1;
>       }
> }
> 
> 
> 
> 
> (gdb) b main
> Breakpoint 1 at 0x8048361: file d.c, line 7.
> (gdb) run
> Starting program: /home/bill/tmp/a.out
> 
> Breakpoint 1, main () at d.c:7
> 7           int i = 0;
> (gdb) b foo
> Function "foo" not defined.
> Make breakpoint pending on future shared library load? (y or [n]) n
> (gdb) n
> 8           foo();
> (gdb) s
> foo.0 () at d.c:11
> 11          void foo(void) {
> (gdb) p i
> No symbol "i" in current context.
> (gdb) n
> 12              i += 1;
> (gdb) cont
> Continuing.
> 
> Program exited normally.
-- 
Ramana Radhakrishnan
GNU Tools
codito ergo sum (http://www.codito.com)



      parent reply	other threads:[~2006-03-31  9:51 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-31  7:36 Bill Pursell
2006-03-31  7:54 ` Jim Blandy
2006-03-31  8:19   ` Bill Pursell
2006-03-31 13:59 ` Ramana Radhakrishnan [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1143797489.7516.31.camel@localhost.localdomain \
    --to=ramana.radhakrishnan@codito.com \
    --cc=bill.pursell@gmail.com \
    --cc=gdb@sourceware.org \
    --cc=jimb@red-bean.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox