This is the mail archive of the gdb-cvs@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]

gdb and binutils branch master updated. a7068b601288f8f5df45ca1113069b44dc759b11


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".

The branch, master has been updated
       via  a7068b601288f8f5df45ca1113069b44dc759b11 (commit)
      from  2c51604d3adbcc77a25d78ce900f5be4597c2504 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a7068b601288f8f5df45ca1113069b44dc759b11

commit a7068b601288f8f5df45ca1113069b44dc759b11
Author: Tom Tromey <tromey@redhat.com>
Date:   Sun Jun 15 21:28:57 2014 -0600

    auto-generate most target debug methods
    
    The target debug methods are inconsistently maintained.  Most to_*
    methods have some kind of targetdebug awareness, but not all of them
    do.  The ones that do vary in the quantity and quality of output they
    generate.
    
    This patch changes most of the target debug methods to be
    automatically generated.  All the arguments are printed, and separate
    lines are printed for entering and existing the outermost call to the
    target stack.
    
    For example now you'd see:
    
        -> multi-thread->to_terminal_ours (...)
        -> multi-thread->to_is_async_p (...)
        <- multi-thread->to_is_async_p (0x1ebb580) = 1
        <- multi-thread->to_terminal_ours (0x1ebb580)
        -> multi-thread->to_thread_address_space (...)
        <- multi-thread->to_thread_address_space (0x1ebb580, 26802) = 1
    
    In this case you can see nested calls.  The "multi-thread" on the left
    hand side is the topmost target's shortname.
    
    There are some oddities with this patch.  I'm on the fence about it
    all, I really just wrote it on a whim.
    
    It's not simple to convert every possible method, since a few don't
    participate in target delegation.
    
    Printing is done by type, so I introduced some new
    debug-printing-specific typedefs to handle cases where it is nicer to
    do something else.
    
    On the plus side, this lays the groundwork for making targetdebug
    affect every layer of the target stack.  The idea would be to wrap
    each target_ops in the stack with its own debug_target, and then you
    could see calls propagate down the stack and back up; I suppose with
    indentation to make it prettier.  (That said there are some gotchas
    lurking in this idea due to target stack introspection.)
    
    Regtested on x86-64 Fedora 20.
    
    2014-07-24  Tom Tromey  <tromey@redhat.com>
    
    	* make-target-delegates (munge_type, write_debugmethod): New
    	functions.
    	(debug_names): New global.
    	($TARGET_DEBUG_PRINTER): New global.
    	(write_function_header): Strip TARGET_DEBUG_PRINTER from the type
    	name.
    	Write debug methods.  Generate init_debug_target.
    	* target-debug.h: New file.
    	* target-delegates.c: Rebuild.
    	* target.c: Include target-debug.h.
    	(debug_target): Hoist definition.
    	(target_kill, target_get_section_table, target_memory_map)
    	(target_flash_erase, target_flash_done, target_detach)
    	(target_disconnect, target_wait, target_resume)
    	(target_pass_signals, target_program_signals, target_follow_fork)
    	(target_mourn_inferior, target_search_memory)
    	(target_thread_address_space, target_close)
    	(target_find_new_threads, target_core_of_thread)
    	(target_verify_memory, target_insert_mask_watchpoint)
    	(target_remove_mask_watchpoint): Remove targetdebug code.
    	(debug_to_post_attach, debug_to_prepare_to_store)
    	(debug_to_files_info, debug_to_insert_breakpoint)
    	(debug_to_remove_breakpoint, debug_to_can_use_hw_breakpoint)
    	(debug_to_region_ok_for_hw_watchpoint)
    	(debug_to_can_accel_watchpoint_condition)
    	(debug_to_stopped_by_watchpoint, debug_to_stopped_data_address)
    	(debug_to_watchpoint_addr_within_range)
    	(debug_to_insert_hw_breakpoint, debug_to_remove_hw_breakpoint)
    	(debug_to_insert_watchpoint, debug_to_remove_watchpoint)
    	(debug_to_terminal_init, debug_to_terminal_inferior)
    	(debug_to_terminal_ours_for_output, debug_to_terminal_ours)
    	(debug_to_terminal_save_ours, debug_to_terminal_info)
    	(debug_to_load, debug_to_post_startup_inferior)
    	(debug_to_insert_fork_catchpoint)
    	(debug_to_remove_fork_catchpoint)
    	(debug_to_insert_vfork_catchpoint)
    	(debug_to_remove_vfork_catchpoint)
    	(debug_to_insert_exec_catchpoint)
    	(debug_to_remove_exec_catchpoint, debug_to_has_exited)
    	(debug_to_can_run, debug_to_thread_architecture, debug_to_stop)
    	(debug_to_rcmd, debug_to_pid_to_exec_file): Remove.
    	(setup_target_debug): Call init_debug_target.
    	* target.h (TARGET_DEBUG_PRINTER): New macro.
    	(struct target_ops) <to_resume, to_wait, to_pass_signals,
    	to_program_signals>: Use TARGET_DEBUG_PRINTER.

-----------------------------------------------------------------------

Summary of changes:
 gdb/ChangeLog             |   48 +
 gdb/make-target-delegates |   88 ++
 gdb/target-debug.h        |  188 ++++
 gdb/target-delegates.c    | 2232 ++++++++++++++++++++++++++++++++++++++++++++-
 gdb/target.c              |  710 +--------------
 gdb/target.h              |   23 +-
 6 files changed, 2589 insertions(+), 700 deletions(-)
 create mode 100644 gdb/target-debug.h


hooks/post-receive
-- 
gdb and binutils


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