This is the mail archive of the
insight@sources.redhat.com
mailing list for the Insight project.
Re: Heads Up: selected_frame_level and selected_frame removal
- From: Andrew Cagney <ac131313 at cygnus dot com>
- To: Andrew Cagney <ac131313 at cygnus dot com>
- Cc: insight at sources dot redhat dot com
- Date: Sun, 14 Apr 2002 21:39:57 -0400
- Subject: Re: Heads Up: selected_frame_level and selected_frame removal
- References: <3CAF671A.1080902@cygnus.com>
> Hello,
>
> I'm looking at the variables ``selected_frame_level'' and ``selected_frame'' with the intent of eliminating them.
>
> It won't be instant but it is comming (....). The sequence is likely to be:
> selected_frame->level OR frame_level (selected_frame)
> selected_frame()->level
> selected_thread->selected_frame->level
> (or some variation). I'm thinking of initially having both selected_frame->level and the global selected_frame_level (until I can convince my self that the global really wasn't doing anything useful).
>
> Looking at insight, I've noticed that selected_frame_level is used. I guess this can be changed so that, the selected_frame_level_changed() hook updates a local variable or something.
This is now ``around the corner''.
The relevant insight code is:
Tcl_LinkVar (interp, "gdb_selected_frame_level",
(char *) &selected_frame_level,
TCL_LINK_INT | TCL_LINK_READ_ONLY);
static void
gdbtk_selected_frame_changed (int level)
{
Tcl_UpdateLinkedVar (gdbtk_interp, "gdb_selected_frame_level");
}
I've attached a rather brutal ``fix''. I've no idea if it is correct -
it does compile though.
Ok?
Andrew
2002-04-14 Andrew Cagney <ac131313@redhat.com>
* generic/gdbtk-hooks.c (gdbtk_selected_frame_changed): Update
gdbtk_selected_frame_level.
* generic/gdbtk.h (gdbtk_selected_frame_level): Declare.
* generic/gdbtk-stack.c (gdbtk_selected_frame_level): New variable.
(Gdbtk_Stack_Init): Update.
Index: generic/gdbtk-hooks.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-hooks.c,v
retrieving revision 1.23
diff -u -r1.23 gdbtk-hooks.c
--- generic/gdbtk-hooks.c 25 Mar 2002 22:58:54 -0000 1.23
+++ generic/gdbtk-hooks.c 15 Apr 2002 01:37:50 -0000
@@ -736,6 +736,7 @@
static void
gdbtk_selected_frame_changed (int level)
{
+ gdbtk_selected_frame_level = level;
Tcl_UpdateLinkedVar (gdbtk_interp, "gdb_selected_frame_level");
}
Index: generic/gdbtk-stack.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-stack.c,v
retrieving revision 1.8
diff -u -r1.8 gdbtk-stack.c
--- generic/gdbtk-stack.c 5 Apr 2002 22:27:30 -0000 1.8
+++ generic/gdbtk-stack.c 15 Apr 2002 01:37:51 -0000
@@ -50,6 +50,8 @@
static void get_frame_name (Tcl_Interp *interp, Tcl_Obj *list,
struct frame_info *fi);
+int gdbtk_selected_frame_level;
+
int
Gdbtk_Stack_Init (Tcl_Interp *interp)
{
@@ -68,7 +70,7 @@
Tcl_CreateObjCommand (interp, "gdb_stack", gdbtk_call_wrapper, gdb_stack, NULL);
Tcl_LinkVar (interp, "gdb_selected_frame_level",
- (char *) &selected_frame_level,
+ (char *) &gdbtk_selected_frame_level,
TCL_LINK_INT | TCL_LINK_READ_ONLY);
return TCL_OK;
Index: generic/gdbtk.h
===================================================================
RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk.h,v
retrieving revision 1.6
diff -u -r1.6 gdbtk.h
--- generic/gdbtk.h 10 May 2001 18:04:24 -0000 1.6
+++ generic/gdbtk.h 15 Apr 2002 01:37:51 -0000
@@ -176,3 +176,4 @@
by the startup code to fill in the hooks needed by core gdb. */
extern void gdbtk_add_hooks (void);
+extern int gdbtk_selected_frame_level;