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]

Patch: save inferior command line arguments


This patch makes it so that command line arguments to the inferior are
saved in the session.  Fernando wrote the code in infcmd.c to allow
this, but the Insight piece was never written (or at least never
checked in).

Ok to commit?

2001-04-17  Tom Tromey  <tromey@redhat.com>

	* library/session.tcl (session_save): Use gdb_get_inferior_args.
	* generic/gdbtk-cmds.c (inferior_args): Removed.
	(Gdbtk_Init): Don't register gdb_inferior_args variable.  Do
	register gdb_get_inferior_args function.
	(gdb_get_inferior_args): New function.

Tom

Index: generic/gdbtk-cmds.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-cmds.c,v
retrieving revision 1.28
diff -u -r1.28 gdbtk-cmds.c
--- gdbtk-cmds.c	2001/04/12 19:46:41	1.28
+++ gdbtk-cmds.c	2001/04/18 00:54:13
@@ -64,9 +64,6 @@
 
 /* Various globals we reference.  */
 extern char *source_path;
-/* FIXME: this must be `extern'.  But to do that we need a patch to
-   infcmd.c.  */
-static char *inferior_args = "";
 
 static void setup_architecture_data (void);
 static int tracepoint_exists (char *args);
@@ -236,6 +233,9 @@
 			 Tcl_Obj * CONST objv[]);
 static int gdb_load_disassembly (ClientData clientData, Tcl_Interp
 				 * interp, int objc, Tcl_Obj * CONST objv[]);
+static int gdb_get_inferior_args (ClientData clientData,
+				  Tcl_Interp *interp,
+				  int objc, Tcl_Obj * CONST objv[]);
 static int gdb_load_info (ClientData, Tcl_Interp *, int,
 			  Tcl_Obj * CONST objv[]);
 static int gdb_loc (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
@@ -419,6 +419,8 @@
 			gdb_get_blocks, NULL);
   Tcl_CreateObjCommand (interp, "gdb_block_variables", call_wrapper,
 			gdb_block_vars, NULL);
+  Tcl_CreateObjCommand (interp, "gdb_get_inferior_args", call_wrapper,
+			gdb_get_inferior_args, NULL);
 
   Tcl_LinkVar (interp, "gdb_selected_frame_level",
 	       (char *) &selected_frame_level,
@@ -445,12 +447,6 @@
 	       (char *) &source_path,
 	       TCL_LINK_STRING | TCL_LINK_READ_ONLY);
 
-  /* Current inferior command-line arguments.  This is read-only for
-     reasons similar to those for gdb_current_directory.  */
-  Tcl_LinkVar (interp, "gdb_inferior_args",
-	       (char *) &inferior_args,
-	       TCL_LINK_STRING | TCL_LINK_READ_ONLY);
-
   /* Init variable interface... */
   if (gdb_variable_init (interp) != TCL_OK)
     return TCL_ERROR;
@@ -983,6 +979,33 @@
     result = 1;
 
   Tcl_SetBooleanObj (result_ptr->obj_ptr, result);
+  return TCL_OK;
+}
+
+/* This implements the tcl command "gdb_get_inferior_args"
+
+ * Returns inferior command line arguments as a string
+ *
+ * Tcl Arguments:
+ *    None
+ * Tcl Result:
+ *    A string containing the inferior command line arguments
+ */
+
+static int
+gdb_get_inferior_args (clientData, interp, objc, objv)
+     ClientData clientData;
+     Tcl_Interp *interp;
+     int objc;
+     Tcl_Obj *CONST objv[];
+{
+  if (objc != 1)
+    {
+      Tcl_WrongNumArgs (interp, 1, objv, NULL);
+      return TCL_ERROR;
+    }
+
+  Tcl_SetStringObj (result_ptr->obj_ptr, get_inferior_args (), -1);
   return TCL_OK;
 }
 
Index: library/session.tcl
===================================================================
RCS file: /cvs/src/src/gdb/gdbtk/library/session.tcl,v
retrieving revision 1.4
diff -u -r1.4 session.tcl
--- session.tcl	2000/12/13 22:59:03	1.4
+++ session.tcl	2001/04/18 00:54:13
@@ -21,7 +21,7 @@
 #
 proc session_save {} {
   global gdb_exe_name gdb_target_name
-  global gdb_current_directory gdb_source_path gdb_inferior_args
+  global gdb_current_directory gdb_source_path
 
   # gdb sessions are named after the executable.
   set name $gdb_exe_name
@@ -34,7 +34,7 @@
   set values(executable) $gdb_exe_name
 
   # Some simple state the user wants.
-  set values(args) $gdb_inferior_args
+  set values(args) [gdb_get_inferior_args]
   set values(dirs) $gdb_source_path
   set values(pwd) $gdb_current_directory
   set values(target) $gdb_target_name


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