This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 10/18] Remote thread create/exit events
- From: Eli Zaretskii <eliz at gnu dot org>
- To: Pedro Alves <palves at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Wed, 14 Oct 2015 19:34:57 +0300
- Subject: Re: [PATCH 10/18] Remote thread create/exit events
- Authentication-results: sourceware.org; auth=none
- References: <1444836486-25679-1-git-send-email-palves at redhat dot com> <1444836486-25679-11-git-send-email-palves at redhat dot com>
- Reply-to: Eli Zaretskii <eliz at gnu dot org>
> From: Pedro Alves <palves@redhat.com>
> Date: Wed, 14 Oct 2015 16:27:58 +0100
>
> gdb/doc/ChangeLog:
> 2015-10-14 Pedro Alves <palves@redhat.com>
>
> * gdb.texinfo (Remote Configuration): List "set/show remote
> thread-events" command in configuration table.
> (Stop Reply Packets): Document "T05 create" stop
> reason and 'w' stop reply.
> (General Query Packets): Document QThreadEvents packet. Document
> QThreadEvents qSupported feature.
>
> gdb/gdbserver/ChangeLog:
> 2015-10-14 Pedro Alves <palves@redhat.com>
>
> * linux-low.c (handle_extended_wait): Assert that the LWP's
> waitstatus is TARGET_WAITKIND_IGNORE. If GDB wants to hear about
> thread create events, leave the new child's status pending.
> (linux_low_filter_event): If GDB wants to hear about thread exit
> events, leave the LWP marked dead and don't delete it.
> (linux_wait_for_event_filtered): Don't check for thread exit.
> (filter_exit_event): New function.
> (linux_wait_1): Use it, when returning an exit event.
> (linux_resume_one_lwp_throw): Assert that the LWP's
> waitstatus is TARGET_WAITKIND_IGNORE.
> * remote-utils.c (prepare_resume_reply): Handle
> TARGET_WAITKIND_THREAD_CREATED and TARGET_WAITKIND_THREAD_EXITED.
> * server.c (report_thread_events): New global.
> (handle_general_set): Handle QThreadEvents.
> * server.h (report_thread_events): Declare.
>
> gdb/ChangeLog:
> 2015-10-14 Pedro Alves <palves@redhat.com>
>
> * NEWS (New commands): Mention "set/show remote thread-events"
> commands.
> (New remote packets): Mention thread created/exited stop reasons
> and QThreadEvents packet.
> * infrun.c (disable_thread_events): New function.
> (stop_all_threads): Disable/enable thread create/exit events.
> Handle TARGET_WAITKIND_THREAD_EXITED.
> (handle_inferior_event_1): Handle TARGET_WAITKIND_THREAD_CREATED
> and TARGET_WAITKIND_THREAD_EXITED.
> * remote.c (remove_child_of_pending_fork): Also remove threads of
> threads that have TARGET_WAITKIND_THREAD_EXITED events.
> (remote_parse_stop_reply): Handle "create" magic register. Handle
> 'w' stop reply.
> (initialize_remote): Install remote_thread_events as
> to_thread_events target hook.
> (remote_thread_events): New function.
> * target-delegates.c: Regenerate.
> * target.c (target_thread_events): New function.
> * target.h (struct target_ops) <to_thread_events>: New field.
> (target_thread_events): Declare.
> * target/waitstatus.c (target_waitstatus_to_string): Handle
> TARGET_WAITKIND_THREAD_CREATED and TARGET_WAITKIND_THREAD_EXITED.
> * target/waitstatus.h (enum target_waitkind)
> <TARGET_WAITKIND_THREAD_CREATED, TARGET_WAITKIND_THREAD_EXITED):
> New values.
OK for the documentation parts, thanks.