aboutsummaryrefslogtreecommitdiff
path: root/gdb/command.h
diff options
context:
space:
mode:
authorFernando Nasser <fnasser@redhat.com>2000-11-06 22:44:34 +0000
committerFernando Nasser <fnasser@redhat.com>2000-11-06 22:44:34 +0000
commit73bc900df9bcfe3ce24453219d2303fafb1395de (patch)
tree907962cd2f5627b8eaa9fb92616a178ae33bf764 /gdb/command.h
parent7152f1dc4515cb14067fed4c5d5b5374f0d475b4 (diff)
downloadgdb-73bc900df9bcfe3ce24453219d2303fafb1395de.zip
gdb-73bc900df9bcfe3ce24453219d2303fafb1395de.tar.gz
gdb-73bc900df9bcfe3ce24453219d2303fafb1395de.tar.bz2
2000-11-06 Fernando Nasser <fnasser@cygnus.com>
From Steven Johnson <sbjohnson@ozemail.com.au>: This set of changes add "hookpost-" as an expansion on the original hooking of commands to GDB. A Hook may now be run "AFTER" execution of a command as well as before. * command.h (struct cmd_list_element): Changed elements hook and hookee to hook_pre and hookee_pre respectively. Added hook_post and hookee_post for the post hook command operation. Added hook_in so that an executing hook can be flagged to prevent recursion. * command.c (add_cmd): Changed initilization of cmd_list_element to reflect above changes. (delete_cmd): Remove both pre and post hooks. (help_cmd): Notify that the command has pre and/or post hooks. * infrun.c (normal_stop): Change references to hook_pre from hook. * top.c (execute_command): Run both pre and post hooks. (define_command): Allow definition of both pre and post hooks. The definition of pre-hooks is done as before, with the "hook-" prefix for backward compatibility.
Diffstat (limited to 'gdb/command.h')
-rw-r--r--gdb/command.h17
1 files changed, 14 insertions, 3 deletions
diff --git a/gdb/command.h b/gdb/command.h
index bbafe1b..ab678a2 100644
--- a/gdb/command.h
+++ b/gdb/command.h
@@ -165,7 +165,14 @@ struct cmd_list_element
char *replacement;
/* Hook for another command to be executed before this command. */
- struct cmd_list_element *hook;
+ struct cmd_list_element *hook_pre;
+
+ /* Hook for another command to be executed after this command. */
+ struct cmd_list_element *hook_post;
+
+ /* Flag that specifies if this command is already running it's hook. */
+ /* Prevents the possibility of hook recursion. */
+ int hook_in;
/* Nonzero identifies a prefix command. For them, the address
of the variable containing the list of subcommands. */
@@ -220,9 +227,13 @@ struct cmd_list_element
/* Pointer to command strings of user-defined commands */
struct command_line *user_commands;
- /* Pointer to command that is hooked by this one,
+ /* Pointer to command that is hooked by this one, (by hook_pre)
+ so the hook can be removed when this one is deleted. */
+ struct cmd_list_element *hookee_pre;
+
+ /* Pointer to command that is hooked by this one, (by hook_post)
so the hook can be removed when this one is deleted. */
- struct cmd_list_element *hookee;
+ struct cmd_list_element *hookee_post;
/* Pointer to command that is aliased by this one, so the
aliased command can be located in case it has been hooked. */