This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Following is a introduce of sync process: 1) When the remote target wants to send a sync packet to GDB, it will send a notification to GDB. 2) GDB handle_notification will get this packet. Handler will get the status of GDB from argument flags. When GDB in NOTIFICATION_ASYNC and NOTIFICATION_RECV_FOREVER, handle this packet because change the breakpoints will not affect anything. If GDB is in other status, the breakpoints cannot be changed because GDB just want to change them with itself. So just drop this packet. 3) In the remote target part, after it send the notification. It will wait the reply packet from GDB. If the packet is the notification packet, handle it as the reply from GDB. If not, the packet that sent to GDB is dropped. Then the target need handle this packet as it is.
Thanks, Hui
* breakpoint.c (breakpoint_add_command_line_next): New variable. (breakpoint_add_command_line, breakpoint_add_command, handle_target_defined_breakpoint_cmd_to_breakpoints, parse_target_defined_breakpoint_definition_to_breakpoints): New function. * remote.c (inside_target_defined_breakpoint_handler): New variable. (handle_notification): Handle QBDP packet. (remote_insert_breakpoint, remote_remove_breakpoint, remote_insert_hw_breakpoint, remote_remove_hw_breakpoint): Check inside_target_defined_breakpoint_handler.
Attachment:
target-defined-breakpoints-async.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |