This is the mail archive of the insight@sources.redhat.com mailing list for the Insight 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: Heads Up: selected_frame_level and selected_frame removal


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

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