From 7a387ea74af6e887c6fb30092485fb0cf614fb2a Mon Sep 17 00:00:00 2001 From: sewardj Date: Sun, 25 Nov 2007 14:06:06 +0000 Subject: Core-tool iface changes needed to support exp-drd (Bart Van Assche). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7212 a5019735-40e9-0310-863c-91ae7b9d1cf9 --- include/pub_tool_tooliface.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'include/pub_tool_tooliface.h') diff --git a/include/pub_tool_tooliface.h b/include/pub_tool_tooliface.h index 1f08521b3..cfc57d754 100644 --- a/include/pub_tool_tooliface.h +++ b/include/pub_tool_tooliface.h @@ -588,9 +588,21 @@ void VG_(track_stop_client_code)( low-level thread create/quit event. In general a few hundred instructions; hence a few hundred(ish) memory references could get misclassified each time. + + pre_thread_first_insn: is called when the thread is all set up and + ready to go (stack in place, etc) but has not executed its first + instruction yet. Gives threading tools a chance to ask questions + about the thread (eg, what is its initial client stack pointer) + that are not easily answered at pre_thread_ll_create time. + + For a given thread, the call sequence is: + ll_create (in the parent's context) + first_insn (in the child's context) + ll_exit (in the child's context) */ -void VG_(track_pre_thread_ll_create)(void(*f)(ThreadId tid, ThreadId child)); -void VG_(track_pre_thread_ll_exit) (void(*f)(ThreadId tid)); +void VG_(track_pre_thread_ll_create) (void(*f)(ThreadId tid, ThreadId child)); +void VG_(track_pre_thread_first_insn)(void(*f)(ThreadId tid)); +void VG_(track_pre_thread_ll_exit) (void(*f)(ThreadId tid)); /* Signal events (not exhaustive) -- cgit v1.2.3