mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-06 11:41:34 +00:00
* Add lock announcements in various helgrind errors that were not announcing the locks * ensure locks are also announced in xml (note that this is compatible with xml protocol version 4, so no impact on GUI which properly implement the protocol) Changes done: * Like other HG record_error functions, HG_(record_error_LockOrder) is now passing Lock* rather than lock guest addresses. * update exp files for tests that were showing locks without announcing them * change tc14_laog_dinphils.c and tc15_laog_lockdel.c so as to have same sizes on 32 and 64 bits systems for allocated or symbol sizes. * factorise all code that was announcing first lock observation * enable xml lock announcement git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14204
123 lines
4.4 KiB
Plaintext
123 lines
4.4 KiB
Plaintext
---Thread-Announcement------------------------------------------
|
|
|
|
Thread #x was created
|
|
...
|
|
by 0x........: pthread_create@* (hg_intercepts.c:...)
|
|
by 0x........: main (annotate_rwlock.c:164)
|
|
|
|
---Thread-Announcement------------------------------------------
|
|
|
|
Thread #x was created
|
|
...
|
|
by 0x........: pthread_create@* (hg_intercepts.c:...)
|
|
by 0x........: main (annotate_rwlock.c:164)
|
|
|
|
----------------------------------------------------------------
|
|
|
|
Possible data race during read of size 4 at 0x........ by thread #x
|
|
Locks held: none
|
|
at 0x........: rwlock_rdlock (annotate_rwlock.c:71)
|
|
by 0x........: thread_func (annotate_rwlock.c:144)
|
|
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
...
|
|
|
|
This conflicts with a previous write of size 4 by thread #x
|
|
Locks held: none
|
|
at 0x........: rwlock_wrlock (annotate_rwlock.c:106)
|
|
by 0x........: thread_func (annotate_rwlock.c:147)
|
|
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
...
|
|
Address 0x........ is 4 bytes inside data symbol "s_rwlock"
|
|
|
|
----------------------------------------------------------------
|
|
|
|
Possible data race during read of size 4 at 0x........ by thread #x
|
|
Locks held: none
|
|
at 0x........: rwlock_rdlock (annotate_rwlock.c:81)
|
|
by 0x........: thread_func (annotate_rwlock.c:144)
|
|
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
...
|
|
|
|
This conflicts with a previous write of size 4 by thread #x
|
|
Locks held: none
|
|
at 0x........: rwlock_rdlock (annotate_rwlock.c:81)
|
|
by 0x........: thread_func (annotate_rwlock.c:144)
|
|
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
...
|
|
Address 0x........ is 8 bytes inside data symbol "s_rwlock"
|
|
|
|
----------------------------------------------------------------
|
|
|
|
Possible data race during write of size 4 at 0x........ by thread #x
|
|
Locks held: none
|
|
at 0x........: rwlock_rdlock (annotate_rwlock.c:81)
|
|
by 0x........: thread_func (annotate_rwlock.c:144)
|
|
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
...
|
|
|
|
This conflicts with a previous read of size 4 by thread #x
|
|
Locks held: none
|
|
at 0x........: rwlock_unlock (annotate_rwlock.c:131)
|
|
by 0x........: thread_func (annotate_rwlock.c:149)
|
|
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
...
|
|
Address 0x........ is 8 bytes inside data symbol "s_rwlock"
|
|
|
|
----------------------------------------------------------------
|
|
|
|
Possible data race during write of size 4 at 0x........ by thread #x
|
|
Locks held: none
|
|
at 0x........: rwlock_unlock (annotate_rwlock.c:121)
|
|
by 0x........: thread_func (annotate_rwlock.c:146)
|
|
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
...
|
|
|
|
This conflicts with a previous read of size 4 by thread #x
|
|
Locks held: none
|
|
at 0x........: rwlock_unlock (annotate_rwlock.c:131)
|
|
by 0x........: thread_func (annotate_rwlock.c:149)
|
|
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
...
|
|
Address 0x........ is 8 bytes inside data symbol "s_rwlock"
|
|
|
|
----------------------------------------------------------------
|
|
|
|
Possible data race during write of size 4 at 0x........ by thread #x
|
|
Locks held: none
|
|
at 0x........: rwlock_wrlock (annotate_rwlock.c:106)
|
|
by 0x........: thread_func (annotate_rwlock.c:147)
|
|
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
...
|
|
|
|
This conflicts with a previous read of size 4 by thread #x
|
|
Locks held: none
|
|
at 0x........: rwlock_unlock (annotate_rwlock.c:132)
|
|
by 0x........: thread_func (annotate_rwlock.c:149)
|
|
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
...
|
|
Address 0x........ is 4 bytes inside data symbol "s_rwlock"
|
|
|
|
----------------------------------------------------------------
|
|
|
|
Lock at 0x........ was first observed
|
|
at 0x........: rwlock_init (annotate_rwlock.c:54)
|
|
by 0x........: main (annotate_rwlock.c:161)
|
|
Address 0x........ is 0 bytes inside data symbol "s_rwlock"
|
|
|
|
Possible data race during write of size 4 at 0x........ by thread #x
|
|
Locks held: 1, at address 0x........
|
|
at 0x........: rwlock_unlock (annotate_rwlock.c:127)
|
|
by 0x........: thread_func (annotate_rwlock.c:149)
|
|
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
...
|
|
|
|
This conflicts with a previous read of size 4 by thread #x
|
|
Locks held: none
|
|
at 0x........: rwlock_unlock (annotate_rwlock.c:132)
|
|
by 0x........: thread_func (annotate_rwlock.c:149)
|
|
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
...
|
|
Address 0x........ is 4 bytes inside data symbol "s_rwlock"
|
|
|
|
Finished.
|