obj:/lib*/libpthread-2.3.*so
}
+
+####################################################
######------ qt4 specific (GNU mangling) ------######
{
helgrind-qt4---QMutex::lock()-QMutex::lock()
fun:_ZN6QMutex4lockEv
}
+{
+ helgrind-qt4---QMutex::unlock()-QMutex::unlock()
+ Helgrind:Race
+ fun:_ZN6QMutex6unlockEv
+ fun:_ZN6QMutex6unlockEv
+}
+
{
helgrind-qt4---pthread_setspecific-QThreadPrivate::start(void*)
Helgrind:Race
fun:_ZN14QThreadPrivate5startEPv
}
+
+####################################################
+# Other stuff.
+#
+# pthread_exit apparently calls some kind of unwind
+# mechanism - maybe to remove some number of frames
+# from the thread's stack, so as to get back to the
+# outermost frame for the thread? Anyway..
+
{
- helgrind-qt4---free_stacks-__deallocate_stack
+ helgrind---*Unwind*-...-pthread_exit
Helgrind:Race
- fun:free_stacks
- fun:__deallocate_stack
+ fun:*Unwind*
+ ...
+ fun:pthread_exit
}
{
- helgrind---pthread_setspecific
+ helgrind---...-*Unwind*-*pthread_unwind*
Helgrind:Race
- fun:pthread_setspecific
+ ...
+ fun:*Unwind*
+ fun:*pthread_unwind*
}
+
+####################################################
+# To do with thread stack allocation and deallocation?
+#
{
- helgrind---pthread_getspecific
+ helgrind---free_stacks-__deallocate_stack
Helgrind:Race
- fun:pthread_getspecific
+ fun:free_stacks
+ fun:__deallocate_stack
}
{
- helgrind---ld.so-...-dlsym
+ helgrind---__deallocate_stack-start_thread-clone
Helgrind:Race
- obj:/lib*/ld-2.*so*
- ...
- fun:dlsym
+ fun:__deallocate_stack
+ fun:start_thread
+ fun:clone
}
+
####################################################
-# Other stuff.
+# To do with pthread_{set,get}specific
#
-# pthread_exit apparently calls some kind of unwind
-# mechanism - maybe to remove some number of frames
-# from the thread's stack, so as to get back to the
-# outermost frame for the thread? Anyway..
+{
+ helgrind---pthread_setspecific
+ Helgrind:Race
+ fun:pthread_setspecific
+}
{
- helgrind---*Unwind*-...-pthread_exit
+ helgrind---pthread_getspecific
Helgrind:Race
- fun:*Unwind*
- ...
- fun:pthread_exit
+ fun:pthread_getspecific
}
+
+####################################################
+# To do with dynamic linking
+#
{
- helgrind---...-*Unwind*-*pthread_unwind*
+ helgrind---ld.so-...-dlsym
Helgrind:Race
+ obj:/lib*/ld-2.*so*
...
- fun:*Unwind*
- fun:*pthread_unwind*
+ fun:dlsym
}