/* 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);
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[]);
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,
(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;
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;
+}
+
/* This implements the tcl command "gdb_load_info"
* It returns information about the file about to be downloaded.
#
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
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