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]

[RFC] Target-defined breakpoints (autoload breakpoints) [7/9] target-defined breakpoint sync function


This patch add the sync function to target-defined breakpoints. All this function is depend on the notification (include the extend that prev patch add).

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

2012-10-24 Hui Zhu <hui_zhu@mentor.com>

	* 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]