<?xml version="1.0"?>

<valgrindoutput>

<protocolversion>4</protocolversion>
<protocoltool>memcheck</protocoltool>

<preamble>
  <line>...</line>
  <line>...</line>
  <line>...</line>
  <line>...</line>
</preamble>

<pid>...</pid>
<ppid>...</ppid>
<tool>memcheck</tool>

<args>
  <vargv>...</vargv>
  <argv>
    <exe>./threadname</exe>
  </argv>
</args>

<status>
  <state>RUNNING</state>
  <time>...</time>
</status>

<error>
  <unique>0x........</unique>
  <tid>...</tid>
  <kind>InvalidWrite</kind>
  <what>Invalid write of size 1</what>
  <stack>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>bad_things</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>main</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
  </stack>
  <auxwhat>Address 0x........ is 0 bytes after a block of size 1 alloc'd</auxwhat>
  <stack>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>malloc</fn>
      <dir>...</dir>
      <file>vg_replace_malloc.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>bad_things</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>main</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
  </stack>
</error>

<error>
  <unique>0x........</unique>
  <tid>...</tid>
  <kind>InvalidWrite</kind>
  <what>Invalid write of size 1</what>
  <stack>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>bad_things</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>child_fn_0</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
  </stack>
  <auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
  <stack>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>malloc</fn>
      <dir>...</dir>
      <file>vg_replace_malloc.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>bad_things</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>child_fn_0</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
  </stack>
</error>

<error>
  <unique>0x........</unique>
  <tid>...</tid>
  <threadname>try1</threadname>
  <kind>InvalidWrite</kind>
  <what>Invalid write of size 1</what>
  <stack>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>bad_things</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>child_fn_1</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
  </stack>
  <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
  <stack>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>malloc</fn>
      <dir>...</dir>
      <file>vg_replace_malloc.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>bad_things</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>child_fn_1</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
  </stack>
</error>

<clientmsg>
  <tid>...</tid>
  <threadname>try1</threadname>
  <text>I am in child_fn_1
  </text>
</clientmsg>
<error>
  <unique>0x........</unique>
  <tid>...</tid>
  <threadname>012345678901234</threadname>
  <kind>InvalidWrite</kind>
  <what>Invalid write of size 1</what>
  <stack>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>bad_things</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>child_fn_2</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
  </stack>
  <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
  <stack>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>malloc</fn>
      <dir>...</dir>
      <file>vg_replace_malloc.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>bad_things</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>child_fn_2</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
  </stack>
</error>

<error>
  <unique>0x........</unique>
  <tid>...</tid>
  <kind>InvalidWrite</kind>
  <what>Invalid write of size 1</what>
  <stack>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>bad_things</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>main</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
  </stack>
  <auxwhat>Address 0x........ is 0 bytes after a block of size 5 alloc'd</auxwhat>
  <stack>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>malloc</fn>
      <dir>...</dir>
      <file>vg_replace_malloc.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>bad_things</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
    <frame>
      <ip>0x........</ip>
      <obj>...</obj>
      <fn>main</fn>
      <dir>...</dir>
      <file>threadname.c</file>
      <line>...</line>
    </frame>
  </stack>
</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>
  <pair>
    <count>...</count>
    <unique>0x........</unique>
  </pair>
</errorcounts>

<suppcounts>...</suppcounts>

</valgrindoutput>

