|
|
|
@ -81,6 +81,36 @@ breakpoint_modify_event (int b) |
|
|
|
current_event_hooks->breakpoint_modify (b); |
|
|
|
} |
|
|
|
|
|
|
|
void |
|
|
|
tracepoint_create_event (int number) |
|
|
|
{ |
|
|
|
if (gdb_events_debug) |
|
|
|
fprintf_unfiltered (gdb_stdlog, "tracepoint_create_event\n"); |
|
|
|
if (!current_event_hooks->tracepoint_create) |
|
|
|
return; |
|
|
|
current_event_hooks->tracepoint_create (number); |
|
|
|
} |
|
|
|
|
|
|
|
void |
|
|
|
tracepoint_delete_event (int number) |
|
|
|
{ |
|
|
|
if (gdb_events_debug) |
|
|
|
fprintf_unfiltered (gdb_stdlog, "tracepoint_delete_event\n"); |
|
|
|
if (!current_event_hooks->tracepoint_delete) |
|
|
|
return; |
|
|
|
current_event_hooks->tracepoint_delete (number); |
|
|
|
} |
|
|
|
|
|
|
|
void |
|
|
|
tracepoint_modify_event (int number) |
|
|
|
{ |
|
|
|
if (gdb_events_debug) |
|
|
|
fprintf_unfiltered (gdb_stdlog, "tracepoint_modify_event\n"); |
|
|
|
if (!current_event_hooks->tracepoint_modify) |
|
|
|
return; |
|
|
|
current_event_hooks->tracepoint_modify (number); |
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if WITH_GDB_EVENTS |
|
|
|
@ -101,6 +131,9 @@ enum gdb_event |
|
|
|
breakpoint_create, |
|
|
|
breakpoint_delete, |
|
|
|
breakpoint_modify, |
|
|
|
tracepoint_create, |
|
|
|
tracepoint_delete, |
|
|
|
tracepoint_modify, |
|
|
|
nr_gdb_events |
|
|
|
}; |
|
|
|
|
|
|
|
@ -119,6 +152,21 @@ struct breakpoint_modify |
|
|
|
int b; |
|
|
|
}; |
|
|
|
|
|
|
|
struct tracepoint_create |
|
|
|
{ |
|
|
|
int number; |
|
|
|
}; |
|
|
|
|
|
|
|
struct tracepoint_delete |
|
|
|
{ |
|
|
|
int number; |
|
|
|
}; |
|
|
|
|
|
|
|
struct tracepoint_modify |
|
|
|
{ |
|
|
|
int number; |
|
|
|
}; |
|
|
|
|
|
|
|
struct event |
|
|
|
{ |
|
|
|
enum gdb_event type; |
|
|
|
@ -128,6 +176,9 @@ struct event |
|
|
|
struct breakpoint_create breakpoint_create; |
|
|
|
struct breakpoint_delete breakpoint_delete; |
|
|
|
struct breakpoint_modify breakpoint_modify; |
|
|
|
struct tracepoint_create tracepoint_create; |
|
|
|
struct tracepoint_delete tracepoint_delete; |
|
|
|
struct tracepoint_modify tracepoint_modify; |
|
|
|
} |
|
|
|
data; |
|
|
|
}; |
|
|
|
@ -171,6 +222,33 @@ queue_breakpoint_modify (int b) |
|
|
|
append (event); |
|
|
|
} |
|
|
|
|
|
|
|
static void |
|
|
|
queue_tracepoint_create (int number) |
|
|
|
{ |
|
|
|
struct event *event = XMALLOC (struct event); |
|
|
|
event->type = tracepoint_create; |
|
|
|
event->data.tracepoint_create.number = number; |
|
|
|
append (event); |
|
|
|
} |
|
|
|
|
|
|
|
static void |
|
|
|
queue_tracepoint_delete (int number) |
|
|
|
{ |
|
|
|
struct event *event = XMALLOC (struct event); |
|
|
|
event->type = tracepoint_delete; |
|
|
|
event->data.tracepoint_delete.number = number; |
|
|
|
append (event); |
|
|
|
} |
|
|
|
|
|
|
|
static void |
|
|
|
queue_tracepoint_modify (int number) |
|
|
|
{ |
|
|
|
struct event *event = XMALLOC (struct event); |
|
|
|
event->type = tracepoint_modify; |
|
|
|
event->data.tracepoint_modify.number = number; |
|
|
|
append (event); |
|
|
|
} |
|
|
|
|
|
|
|
void |
|
|
|
gdb_events_deliver (struct gdb_events *vector) |
|
|
|
{ |
|
|
|
@ -204,6 +282,18 @@ gdb_events_deliver (struct gdb_events *vector) |
|
|
|
vector->breakpoint_modify |
|
|
|
(event->data.breakpoint_modify.b); |
|
|
|
break; |
|
|
|
case tracepoint_create: |
|
|
|
vector->tracepoint_create |
|
|
|
(event->data.tracepoint_create.number); |
|
|
|
break; |
|
|
|
case tracepoint_delete: |
|
|
|
vector->tracepoint_delete |
|
|
|
(event->data.tracepoint_delete.number); |
|
|
|
break; |
|
|
|
case tracepoint_modify: |
|
|
|
vector->tracepoint_modify |
|
|
|
(event->data.tracepoint_modify.number); |
|
|
|
break; |
|
|
|
} |
|
|
|
delivering_events = event->next; |
|
|
|
xfree (event); |
|
|
|
@ -219,6 +309,9 @@ _initialize_gdb_events (void) |
|
|
|
queue_event_hooks.breakpoint_create = queue_breakpoint_create; |
|
|
|
queue_event_hooks.breakpoint_delete = queue_breakpoint_delete; |
|
|
|
queue_event_hooks.breakpoint_modify = queue_breakpoint_modify; |
|
|
|
queue_event_hooks.tracepoint_create = queue_tracepoint_create; |
|
|
|
queue_event_hooks.tracepoint_delete = queue_tracepoint_delete; |
|
|
|
queue_event_hooks.tracepoint_modify = queue_tracepoint_modify; |
|
|
|
#endif |
|
|
|
|
|
|
|
c = add_set_cmd ("eventdebug", class_maintenance, var_zinteger, |
|
|
|
|