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]

[PATCH] Add autoload-breakpoints [5/7] autoload-breakpoints


Hi,

This is the patch to add autoload-breakpints.
It try to sync the autoload-breakpoints in the stub when GDB connec to stub. And the stub can use the ReportAsync interface control the breakpoint in it.
If autoload-breakpoints control the breakpoint when inferior is running, I still not sure about the stub can handle this breakpoint or something. What I thougt is, if the stub think it need, send back a ReportAsync packet let GDB contol the stub reload the breakpoint (interrupt and continue the inferior). How do you think about it?


Thanks,
Hui

2012-03-17 Hui Zhu <hui_zhu@mentor.com>

	* breakpoint.c (hex2bin, unpack_varlen_hex): New extern.
	(autoload_breakpoints_query, autoload_breakpoints_merge,
	autoload_breakpoints_gdb, autoload_breakpoints_stub,
	autoload_breakpoints_enums,
	breakpoint_add_command_line_next, this_ubpcmd): New variable.
	(breakpoint_add_command_line, breakpoint_add_command,
	breakpoint_get_commands): New function.
	(print_one_breakpoint): Add out for b->autoload_id.
	(init_raw_breakpoint_without_location): Add init for autoload_id
	and autoload_inserted.
	(autoload_breakpoints_get_id, uploaded_bp_commands_clean,
	uploaded_bp_commands_add, handle_autoload_breakpoint_cmd,
	parse_autoload_breakpoint_definition,
	handle_autoload_breakpoint_cmd_to_breakpoints,
	parse_autoload_breakpoint_definition_to_breakpoints,
	clean_upload_autoload_breakpoints,
	show_upload_autoload_breakpoints,
	read_autoload_breakpoints_action,
	merge_uploaded_autoload_breakpoints, autoload_breakpoints_reset,
	autoload_breakpoints_clean,
	autoload_breakpoints_number): New function.
	(initialize_breakpoint_ops): add command "autoload".
	* breakpoint.h (breakpoint): Add autoload_id and autoload_inserted.
	(uploaded_bpcmd, uploaded_bp): New struct.
	(autoload_breakpoints_query, autoload_breakpoints_merge,
	autoload_breakpoints_gdb, autoload_breakpoints_stub,
	autoload_breakpoints_mode, breakpoint_get_commands,
	autoload_breakpoints_reset, autoload_breakpoints_clean,
	autoload_breakpoints_number, parse_autoload_breakpoint_definition,
	parse_autoload_breakpoint_definition_to_breakpoints,
	clean_upload_autoload_breakpoints, show_upload_autoload_breakpoints,
	merge_uploaded_autoload_breakpoints): New extern.
	* remote.c (PACKET_AutoloadBreakpoints): New enum.
	(remote_start_remote): Check PACKET_AutoloadBreakpoints,
	if need call autoload-breakpoints functions.
	(remote_pr): Add PACKET_AutoloadBreakpoints.
	(remote_insert_breakpoint): Check inside_reportasync_handler.
	(remote_remove_breakpoint): Ditto.
	(remote_insert_hw_breakpoint): Ditto.
	(remote_remove_hw_breakpoint): Ditto.
	(remote_reportasync_handler): Add handle for "QBDP".
	(remote_upload_autoload_breakpoints,
	remote_download_autoload_breakpoints): New functions.

Attachment: autoload-breakpoints.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]