summaryrefslogtreecommitdiff
path: root/gdb/cli
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2001-11-22 00:23:13 +0000
committerTom Tromey <tromey@redhat.com>2001-11-22 00:23:13 +0000
commit552c04a7423afb694bd4948e8896b3c4cc4be816 (patch)
treed8dc2eb4aa8f8fcaafcd69d55584e295a99541f3 /gdb/cli
parentaa26fa3a7e8aaec115e103eaf2108e7023e658c2 (diff)
downloadbinutils-552c04a7423afb694bd4948e8896b3c4cc4be816.tar.gz
binutils-552c04a7423afb694bd4948e8896b3c4cc4be816.tar.bz2
binutils-552c04a7423afb694bd4948e8896b3c4cc4be816.zip
Fix for PR gdb/209, PR gdb/156:
* gdbarch.c, gdbarch.h: Rebuilt. * gdbarch.sh: Added `construct_inferior_arguments'. * cli/cli-decode.h (cmd_list_element): Added pre_show_hook. Typo fix. * cli/cli-setshow.c (do_setshow_command): Call the pre_show_hook. * infcmd.c (_initialize_infcmd): Set sfunc on `set args' command. (inferior_argc, inferior_argv): New globals. (notice_args_set): New function. (set_inferior_args): Clear inferior_argc and inferior_argv. (set_inferior_args_vector): New function. (get_inferior_args): Handle inferior argument vector. (run_command): Use get_inferior_args(). (notice_args_read): New function. (_initialize_infcmd): Don't call set_inferior_args. * command.h: Typo fix. (cmd_list_element): Added pre_show_hook. * main.c (captured_main): Added --args option. (print_gdb_help): Document --args. * inferior.h (construct_inferior_arguments): Declare. (set_inferior_args_vector): Likewise. * fork-child.c (construct_inferior_arguments): New function.
Diffstat (limited to 'gdb/cli')
-rw-r--r--gdb/cli/cli-decode.h6
-rw-r--r--gdb/cli/cli-setshow.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/gdb/cli/cli-decode.h b/gdb/cli/cli-decode.h
index d35685c4f92..e9e354eec0f 100644
--- a/gdb/cli/cli-decode.h
+++ b/gdb/cli/cli-decode.h
@@ -128,7 +128,7 @@ struct cmd_list_element
/* If type is not_set_cmd, call it like this: */
void (*cfunc) (char *args, int from_tty);
- /* If type is cmd_set or show_cmd, first set the variables, and
+ /* If type is set_cmd or show_cmd, first set the variables, and
then call this. */
void (*sfunc) (char *args, int from_tty, struct cmd_list_element * c);
}
@@ -166,6 +166,10 @@ struct cmd_list_element
/* if this command is deprecated, this is the replacement name */
char *replacement;
+ /* If this command represents a show command, then this function
+ is called before the variable's value is examined. */
+ void (*pre_show_hook) (struct cmd_list_element *c);
+
/* Hook for another command to be executed before this command. */
struct cmd_list_element *hook_pre;
diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c
index bd3dd1a8c7b..3489fc059de 100644
--- a/gdb/cli/cli-setshow.c
+++ b/gdb/cli/cli-setshow.c
@@ -267,6 +267,10 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c)
old_chain = make_cleanup_ui_out_stream_delete (stb);
#endif /* UI_OUT */
+ /* Possibly call the pre hook. */
+ if (c->pre_show_hook)
+ (c->pre_show_hook) (c);
+
/* Print doc minus "show" at start. */
print_doc_line (gdb_stdout, c->doc + 5);