This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] -stack-info-frames


On Sun, Jun 19, 2005 at 10:49:29AM +1200, Nick Roberts wrote:

>  > (gdb)
>  > -interpreter-exec console up
>  > ~"#1  0xb7d621ae in poll () from /lib/tls/i686/cmov/libc.so.6\n"
>  > ^done
>  > 


> Yes.  The same is true for the commands that control execution:
> 

> (gdb) 
> -interpreter-exec console next
> ~"50\t  int n1=7, n2=8, n3=9;\n"
> ^done
> (gdb) 
> 
> doesn't give the frontend any information.



For what it's worth, here's what these look like with the Apple gdb:

86-interpreter-exec console-quoted "up"
(gdb) 
~"#1  0x0003eaf0 in -[SKTGraphicView createGraphicOfClass:withEvent:] (self=0x341380, _cmd=0x3411c0, theClass=0xb2014, theEvent=0x3afc90) at /Developer/Examples/AppKit/Sketch/SKTGraphicView.m:345\n"
~"345\t    _creatingGraphic = [[theClass allocWithZone:[document zone]] init];\n"
86^done,MI_HOOK_RESULT=[HOOK_TYPE="frame_changed",frame="1"]



In the case of a 'next',

78-interpreter-exec console-quoted "next"
(gdb) 
^stepping
~"Current language:  auto; currently objective-c\n"
78^running
78*stopped,reason="end-stepping-range",thread-id="1"


These, and a handful of other notifications, are essential
if you have a GUI with a "gdb console" and you want to allow
the user to change program state in the console.


You'll notice that we use "console-quoted" for these.  We keep
the meaning of "console" to actually mean console and have a
separate interpreter for the MI-quoted console output.  We also
have the increidbly useful ability to switch the current
interpreter on the fly.  e.g.

(gdb) b main
Breakpoint 1 at 0x2d04: file a.c, line 3.
(gdb) r
Starting program: /private/tmp/a.out 
Reading symbols for shared libraries . done

Breakpoint 1, main () at a.c:3
3         puts ("");
(gdb) set interpreter  mi
-stack-select-frame 0
^done
(gdb) 
set interpreter console
&"set interpreter console\n"
Switching to interpreter "console".
^done
(gdb) 
fr 0
#0  main () at a.c:3
3         puts ("");
(gdb) 

So when we're working on an MI problem, we can navigate to the
area of interest via console, then switch to an MI interpreter
to work the problem.

>  > Meanwhile, we don't have this ability.  So maybe we do need
>  > -stack-info-frame, without an argument.
> 
> Yes, unless Apple's proposed merge will provide the necessary information.

Yeah, I would agree with Daniel that you shouldn't wait.  We're working
on the latest FSF -> Apple merge right now.  That will take a while
to get all the bugs shaken out, but even when it's finished we'll have
accomplished nothing for the desirable Apple -> FSF contributions --
it just sets the stage to make those easier to do.

J


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]