blob: e59809bf8ef7c518fe1015081ef9f8e364e57791 [file] [log] [blame]
<?xml version="1.0"?>
<valgrindoutput>
<protocolversion>4</protocolversion>
<protocoltool>helgrind</protocoltool>
<preamble>
<line>Helgrind, a thread error detector</line>
<line>Copyright (C) XXXX-YYYY, and GNU GPL'd, by OpenWorks LLP et al.</line>
<line>Using Valgrind-X.Y.X and LibVEX; rerun with -h for copyright info</line>
<line>Command: ./tc06_two_races</line>
</preamble>
<pid>...</pid>
<ppid>...</ppid>
<tool>helgrind</tool>
<args>
<vargv>
<exe>...</exe>
<arg>--command-line-only=yes</arg>
<arg>--memcheck:leak-check=no</arg>
<arg>--tool=helgrind</arg>
<arg>--read-var-info=yes</arg>
<arg>--xml=yes</arg>
<arg>--xml-fd=2</arg>
<arg>--log-file=/dev/null</arg>
</vargv>
<argv>
<exe>...</exe>
</argv>
</args>
<status>
<state>RUNNING</state>
<time>...</time>
</status>
<announcethread>
<hthreadid>1</hthreadid>
<isrootthread></isrootthread>
</announcethread>
<announcethread>
<hthreadid>2</hthreadid>
<stack>
<frame>...</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>26</line>
</frame>
</stack>
</announcethread>
<error>
<unique>...</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>31</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>14</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>mythread_wrapper</fn>
<dir>...</dir>
<file>hg_intercepts.c</file>
<line>...</line>
</frame>
<frame>...</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>9</line> </xauxwhat>
</error>
<error>
<unique>...</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>31</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>14</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>mythread_wrapper</fn>
<dir>...</dir>
<file>hg_intercepts.c</file>
<line>...</line>
</frame>
<frame>...</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>9</line> </xauxwhat>
</error>
<error>
<unique>...</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>35</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>18</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>mythread_wrapper</fn>
<dir>...</dir>
<file>hg_intercepts.c</file>
<line>...</line>
</frame>
<frame>...</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>9</line> </xauxwhat>
</error>
<error>
<unique>...</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>35</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>18</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>mythread_wrapper</fn>
<dir>...</dir>
<file>hg_intercepts.c</file>
<line>...</line>
</frame>
<frame>...</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>9</line> </xauxwhat>
</error>
<status>
<state>FINISHED</state>
<time>...</time>
</status>
<errorcounts>...</errorcounts>
<suppcounts>...</suppcounts>
</valgrindoutput>