blob: 25ee580e1003d98463d3ab04eb1fb5fc738e22ce [file] [log] [blame]
<?xml version="1.0"?>
<valgrindoutput>
<protocolversion>4</protocolversion>
<protocoltool>helgrind</protocoltool>
<preamble>
<line>...</line>
<line>...</line>
<line>...</line>
<line>...</line>
</preamble>
<pid>...</pid>
<ppid>...</ppid>
<tool>helgrind</tool>
<args>
<vargv>...</vargv>
<argv>
<exe>./tc06_two_races</exe>
</argv>
</args>
<status>
<state>RUNNING</state>
<time>...</time>
</status>
<announcethread>
<hthreadid>1</hthreadid>
<isrootthread></isrootthread>
</announcethread>
<announcethread>
<hthreadid>2</hthreadid>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
<dir>...</dir>
<file>clone.S</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_create@@GLIBC_2.2.5</fn>
<dir>...</dir>
<file>createthread.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_create_WRK</fn>
<dir>...</dir>
<file>hg_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_create@*</fn>
<dir>...</dir>
<file>hg_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>tc06_two_races.c</file>
<line>...</line>
</frame>
</stack>
</announcethread>
<error>
<unique>0x........</unique>
<tid>...</tid>
<kind>Race</kind>
<xwhat>
<text>Possible data race during read of size 4 at 0x........ by thread #x</text>
<hthreadid>1</hthreadid>
</xwhat>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>tc06_two_races.c</file>
<line>...</line>
</frame>
</stack>
<xauxwhat>
<text>This conflicts with a previous write of size 4 by thread #x</text>
<hthreadid>2</hthreadid>
</xauxwhat>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>child_fn</fn>
<dir>...</dir>
<file>tc06_two_races.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>mythread_wrapper</fn>
<dir>...</dir>
<file>hg_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
<dir>...</dir>
<file>pthread_create.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
<xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>...</line> </xauxwhat>
</error>
<error>
<unique>0x........</unique>
<tid>...</tid>
<kind>Race</kind>
<xwhat>
<text>Possible data race during write of size 4 at 0x........ by thread #x</text>
<hthreadid>1</hthreadid>
</xwhat>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>tc06_two_races.c</file>
<line>...</line>
</frame>
</stack>
<xauxwhat>
<text>This conflicts with a previous write of size 4 by thread #x</text>
<hthreadid>2</hthreadid>
</xauxwhat>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>child_fn</fn>
<dir>...</dir>
<file>tc06_two_races.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>mythread_wrapper</fn>
<dir>...</dir>
<file>hg_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
<dir>...</dir>
<file>pthread_create.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
<xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>...</line> </xauxwhat>
</error>
<error>
<unique>0x........</unique>
<tid>...</tid>
<kind>Race</kind>
<xwhat>
<text>Possible data race during read of size 4 at 0x........ by thread #x</text>
<hthreadid>1</hthreadid>
</xwhat>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>tc06_two_races.c</file>
<line>...</line>
</frame>
</stack>
<xauxwhat>
<text>This conflicts with a previous write of size 4 by thread #x</text>
<hthreadid>2</hthreadid>
</xauxwhat>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>child_fn</fn>
<dir>...</dir>
<file>tc06_two_races.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>mythread_wrapper</fn>
<dir>...</dir>
<file>hg_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
<dir>...</dir>
<file>pthread_create.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
<xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>...</line> </xauxwhat>
</error>
<error>
<unique>0x........</unique>
<tid>...</tid>
<kind>Race</kind>
<xwhat>
<text>Possible data race during write of size 4 at 0x........ by thread #x</text>
<hthreadid>1</hthreadid>
</xwhat>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>tc06_two_races.c</file>
<line>...</line>
</frame>
</stack>
<xauxwhat>
<text>This conflicts with a previous write of size 4 by thread #x</text>
<hthreadid>2</hthreadid>
</xauxwhat>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>child_fn</fn>
<dir>...</dir>
<file>tc06_two_races.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>mythread_wrapper</fn>
<dir>...</dir>
<file>hg_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
<dir>...</dir>
<file>pthread_create.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
<xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>...</line> </xauxwhat>
</error>
<status>
<state>FINISHED</state>
<time>...</time>
</status>
<errorcounts>
<pair>
<count>...</count>
<unique>0x........</unique>
</pair>
<pair>
<count>...</count>
<unique>0x........</unique>
</pair>
<pair>
<count>...</count>
<unique>0x........</unique>
</pair>
<pair>
<count>...</count>
<unique>0x........</unique>
</pair>
</errorcounts>
<suppcounts>...</suppcounts>
</valgrindoutput>