From 34fb6de111086011b32889c2f57c7e0888a4fb71 Mon Sep 17 00:00:00 2001 From: Keith Seitz Date: Fri, 9 Aug 2002 19:46:14 +0000 Subject: [PATCH] * infrun.c (handle_inferior_event): Add context_changed_event. * gdb-events.sh (context_hook): Removed comment. (context_changed): Add new event. * gdb-events.c: Regenerate. * gdb-events.h: Regenerate. --- gdb/ChangeLog | 22 ++++++++-------------- gdb/gdb-events.c | 31 +++++++++++++++++++++++++++++++ gdb/gdb-events.h | 4 ++++ gdb/gdb-events.sh | 2 +- gdb/infrun.c | 1 + 5 files changed, 45 insertions(+), 15 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3314232f637..1e1b456ec69 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2002-08-08 Keith Seitz + + * infrun.c (handle_inferior_event): Add context_changed_event. + * gdb-events.sh (context_hook): Removed comment. + (context_changed): Add new event. + * gdb-events.c: Regenerate. + * gdb-events.h: Regenerate. + 2002-07-25 Keith Seitz * stack.c (frame_command): If the frame level changed, issue @@ -75,9 +83,6 @@ * cli/cli-interp.c: New file. Almost entirely from Apple's sources. Collected and moved here. - * mi/mi-interp.c: Ditto. - * mi/mi-events.c: Ditto. - * mi/mi.h: New file. * Makefile.in: Add new files. Update dependencies on interps.h. * defs.h (selected_frame_level_changed_hook): Add declaration. @@ -87,17 +92,6 @@ * top.c (catcher): If the caught command changes the uiout on us, try to do something sane, like using the current interpreter's uiout. - * mi/mi-main.c (captured_execute_command): Use catch_exception - instead of catch_errors. - (mi_execute_command_wrapper): Remove. Using catch_errors now. - (mi_input): Make global. - (mi_load_progress): Ditto. - Use interpreter functions instead of interpreter_p. - (mi_command_loop): Moved to mi-interp.c - (mi0_command_loop): Ditto. - (mi1_command_loop): Ditto. - (mi_init_ui): Remove. - (_initialize_mi_main): Remove. No longer needed. From Jim Ingham : * event-loop.c (start_event_loop): Poll the interpreter's event loop diff --git a/gdb/gdb-events.c b/gdb/gdb-events.c index c451d4bf336..7256eec19f9 100644 --- a/gdb/gdb-events.c +++ b/gdb/gdb-events.c @@ -139,6 +139,16 @@ selected_frame_level_changed_event (int level) current_event_hooks->selected_frame_level_changed (level); } +void +context_changed_event (int num) +{ + if (gdb_events_debug) + fprintf_unfiltered (gdb_stdlog, "context_changed_event\n"); + if (!current_event_hooks->context_changed) + return; + current_event_hooks->context_changed (num); +} + #endif #if WITH_GDB_EVENTS @@ -173,6 +183,7 @@ enum gdb_event architecture_changed, register_update, selected_frame_level_changed, + context_changed, nr_gdb_events }; @@ -216,6 +227,11 @@ struct selected_frame_level_changed int level; }; +struct context_changed + { + int num; + }; + struct event { enum gdb_event type; @@ -230,6 +246,7 @@ struct event struct tracepoint_modify tracepoint_modify; struct register_update register_update; struct selected_frame_level_changed selected_frame_level_changed; + struct context_changed context_changed; } data; }; @@ -326,6 +343,15 @@ queue_selected_frame_level_changed (int level) append (event); } +static void +queue_context_changed (int num) +{ + struct event *event = XMALLOC (struct event); + event->type = context_changed; + event->data.context_changed.num = num; + append (event); +} + void gdb_events_deliver (struct gdb_events *vector) { @@ -382,6 +408,10 @@ gdb_events_deliver (struct gdb_events *vector) vector->selected_frame_level_changed (event->data.selected_frame_level_changed.level); break; + case context_changed: + vector->context_changed + (event->data.context_changed.num); + break; } delivering_events = event->next; xfree (event); @@ -403,6 +433,7 @@ _initialize_gdb_events (void) queue_event_hooks.architecture_changed = queue_architecture_changed; queue_event_hooks.register_update = queue_register_update; queue_event_hooks.selected_frame_level_changed = queue_selected_frame_level_changed; + queue_event_hooks.context_changed = queue_context_changed; #endif c = add_set_cmd ("eventdebug", class_maintenance, var_zinteger, diff --git a/gdb/gdb-events.h b/gdb/gdb-events.h index 50b0d391049..abd5b18fedf 100644 --- a/gdb/gdb-events.h +++ b/gdb/gdb-events.h @@ -61,6 +61,7 @@ typedef void (gdb_events_tracepoint_modify_ftype) (int number); typedef void (gdb_events_architecture_changed_ftype) (void); typedef void (gdb_events_register_update_ftype) (int regno); typedef void (gdb_events_selected_frame_level_changed_ftype) (int level); +typedef void (gdb_events_context_changed_ftype) (int num); /* gdb-events: object. */ @@ -76,6 +77,7 @@ struct gdb_events gdb_events_architecture_changed_ftype *architecture_changed; gdb_events_register_update_ftype *register_update; gdb_events_selected_frame_level_changed_ftype *selected_frame_level_changed; + gdb_events_context_changed_ftype *context_changed; }; @@ -91,6 +93,7 @@ extern void tracepoint_modify_event (int number); extern void architecture_changed_event (void); extern void register_update_event (int regno); extern void selected_frame_level_changed_event (int level); +extern void context_changed_event (int num); /* When GDB_EVENTS are not being used, completly disable them. */ @@ -105,6 +108,7 @@ extern void selected_frame_level_changed_event (int level); #define architecture_changed_event() 0 #define register_update_event(regno) 0 #define selected_frame_level_changed_event(level) 0 +#define context_changed_event(num) 0 #endif /* Install custom gdb-events hooks. */ diff --git a/gdb/gdb-events.sh b/gdb/gdb-events.sh index e4bf4b15cf9..d99b32a7c9a 100755 --- a/gdb/gdb-events.sh +++ b/gdb/gdb-events.sh @@ -67,6 +67,7 @@ f:void:tracepoint_modify:int number:number f:void:architecture_changed:void f:void:register_update:int regno:regno f:void:selected_frame_level_changed:int level:level +f:void:context_changed:int num:num #*:void:annotate_starting_hook:void #*:void:annotate_stopped_hook:void #*:void:annotate_signalled_hook:void @@ -90,7 +91,6 @@ f:void:selected_frame_level_changed:int level:level #*:char *:readline_hook:char *prompt:prompt #*:void:readline_end_hook:void #*:void:memory_changed_hook:CORE_ADDR addr, int len:addr, len -#*:void:context_hook:int num:num #*:int:target_wait_hook:int pid, struct target_waitstatus *status:pid, status #*:void:call_command_hook:struct cmd_list_element *c, char *cmd, int from_tty:c, cmd, from_tty #*:NORETURN void:error_hook:void:: ATTR_NORETURN diff --git a/gdb/infrun.c b/gdb/infrun.c index 672d5f93c65..dc387cddd55 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -1947,6 +1947,7 @@ handle_inferior_event (struct execution_control_state *ecs) context_switch (ecs); + context_changed_event (pid_to_thread_id (ecs->ptid)); if (context_hook) context_hook (pid_to_thread_id (ecs->ptid)); -- 2.47.2