1 <?xml version="1.0"?> 2 3 <valgrindoutput> 4 5 <protocolversion>4</protocolversion> 6 <protocoltool>helgrind</protocoltool> 7 8 <preamble> 9 <line>...</line> 10 <line>...</line> 11 <line>...</line> 12 <line>...</line> 13 </preamble> 14 15 <pid>...</pid> 16 <ppid>...</ppid> 17 <tool>helgrind</tool> 18 19 <args> 20 <vargv>...</vargv> 21 <argv> 22 <exe>./tc06_two_races</exe> 23 </argv> 24 </args> 25 26 <status> 27 <state>RUNNING</state> 28 <time>...</time> 29 </status> 30 31 <announcethread> 32 <hthreadid>1</hthreadid> 33 <isrootthread></isrootthread> 34 </announcethread> 35 36 <announcethread> 37 <hthreadid>2</hthreadid> 38 <stack> 39 <frame> 40 <ip>0x........</ip> 41 <obj>...</obj> 42 <fn>clone</fn> 43 </frame> 44 <frame> 45 <ip>0x........</ip> 46 <obj>...</obj> 47 <fn>do_clone</fn> 48 </frame> 49 <frame> 50 <ip>0x........</ip> 51 <obj>...</obj> 52 <fn>pthread_create@@GLIBC_2.2.5</fn> 53 </frame> 54 <frame> 55 <ip>0x........</ip> 56 <obj>...</obj> 57 <fn>pthread_create_WRK</fn> 58 <dir>...</dir> 59 <file>hg_intercepts.c</file> 60 <line>...</line> 61 </frame> 62 <frame> 63 <ip>0x........</ip> 64 <obj>...</obj> 65 <fn>pthread_create@*</fn> 66 <dir>...</dir> 67 <file>hg_intercepts.c</file> 68 <line>...</line> 69 </frame> 70 <frame> 71 <ip>0x........</ip> 72 <obj>...</obj> 73 <fn>main</fn> 74 <dir>...</dir> 75 <file>tc06_two_races.c</file> 76 <line>...</line> 77 </frame> 78 </stack> 79 </announcethread> 80 81 <error> 82 <unique>0x........</unique> 83 <tid>...</tid> 84 <kind>Race</kind> 85 <xwhat> 86 <text>Possible data race during read of size 4 at 0x........ by thread #x</text> 87 <hthreadid>1</hthreadid> 88 </xwhat> 89 <stack> 90 <frame> 91 <ip>0x........</ip> 92 <obj>...</obj> 93 <fn>main</fn> 94 <dir>...</dir> 95 <file>tc06_two_races.c</file> 96 <line>...</line> 97 </frame> 98 </stack> 99 <xauxwhat> 100 <text>This conflicts with a previous write of size 4 by thread #x</text> 101 <hthreadid>2</hthreadid> 102 </xauxwhat> 103 <stack> 104 <frame> 105 <ip>0x........</ip> 106 <obj>...</obj> 107 <fn>child_fn</fn> 108 <dir>...</dir> 109 <file>tc06_two_races.c</file> 110 <line>...</line> 111 </frame> 112 <frame> 113 <ip>0x........</ip> 114 <obj>...</obj> 115 <fn>mythread_wrapper</fn> 116 <dir>...</dir> 117 <file>hg_intercepts.c</file> 118 <line>...</line> 119 </frame> 120 <frame> 121 <ip>0x........</ip> 122 <obj>...</obj> 123 <fn>start_thread</fn> 124 </frame> 125 <frame> 126 <ip>0x........</ip> 127 <obj>...</obj> 128 <fn>clone</fn> 129 </frame> 130 </stack> 131 <auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat> 132 <xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>...</line> </xauxwhat> 133 </error> 134 135 <error> 136 <unique>0x........</unique> 137 <tid>...</tid> 138 <kind>Race</kind> 139 <xwhat> 140 <text>Possible data race during write of size 4 at 0x........ by thread #x</text> 141 <hthreadid>1</hthreadid> 142 </xwhat> 143 <stack> 144 <frame> 145 <ip>0x........</ip> 146 <obj>...</obj> 147 <fn>main</fn> 148 <dir>...</dir> 149 <file>tc06_two_races.c</file> 150 <line>...</line> 151 </frame> 152 </stack> 153 <xauxwhat> 154 <text>This conflicts with a previous write of size 4 by thread #x</text> 155 <hthreadid>2</hthreadid> 156 </xauxwhat> 157 <stack> 158 <frame> 159 <ip>0x........</ip> 160 <obj>...</obj> 161 <fn>child_fn</fn> 162 <dir>...</dir> 163 <file>tc06_two_races.c</file> 164 <line>...</line> 165 </frame> 166 <frame> 167 <ip>0x........</ip> 168 <obj>...</obj> 169 <fn>mythread_wrapper</fn> 170 <dir>...</dir> 171 <file>hg_intercepts.c</file> 172 <line>...</line> 173 </frame> 174 <frame> 175 <ip>0x........</ip> 176 <obj>...</obj> 177 <fn>start_thread</fn> 178 </frame> 179 <frame> 180 <ip>0x........</ip> 181 <obj>...</obj> 182 <fn>clone</fn> 183 </frame> 184 </stack> 185 <auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat> 186 <xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>...</line> </xauxwhat> 187 </error> 188 189 <error> 190 <unique>0x........</unique> 191 <tid>...</tid> 192 <kind>Race</kind> 193 <xwhat> 194 <text>Possible data race during read of size 4 at 0x........ by thread #x</text> 195 <hthreadid>1</hthreadid> 196 </xwhat> 197 <stack> 198 <frame> 199 <ip>0x........</ip> 200 <obj>...</obj> 201 <fn>main</fn> 202 <dir>...</dir> 203 <file>tc06_two_races.c</file> 204 <line>...</line> 205 </frame> 206 </stack> 207 <xauxwhat> 208 <text>This conflicts with a previous write of size 4 by thread #x</text> 209 <hthreadid>2</hthreadid> 210 </xauxwhat> 211 <stack> 212 <frame> 213 <ip>0x........</ip> 214 <obj>...</obj> 215 <fn>child_fn</fn> 216 <dir>...</dir> 217 <file>tc06_two_races.c</file> 218 <line>...</line> 219 </frame> 220 <frame> 221 <ip>0x........</ip> 222 <obj>...</obj> 223 <fn>mythread_wrapper</fn> 224 <dir>...</dir> 225 <file>hg_intercepts.c</file> 226 <line>...</line> 227 </frame> 228 <frame> 229 <ip>0x........</ip> 230 <obj>...</obj> 231 <fn>start_thread</fn> 232 </frame> 233 <frame> 234 <ip>0x........</ip> 235 <obj>...</obj> 236 <fn>clone</fn> 237 </frame> 238 </stack> 239 <auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat> 240 <xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>...</line> </xauxwhat> 241 </error> 242 243 <error> 244 <unique>0x........</unique> 245 <tid>...</tid> 246 <kind>Race</kind> 247 <xwhat> 248 <text>Possible data race during write of size 4 at 0x........ by thread #x</text> 249 <hthreadid>1</hthreadid> 250 </xwhat> 251 <stack> 252 <frame> 253 <ip>0x........</ip> 254 <obj>...</obj> 255 <fn>main</fn> 256 <dir>...</dir> 257 <file>tc06_two_races.c</file> 258 <line>...</line> 259 </frame> 260 </stack> 261 <xauxwhat> 262 <text>This conflicts with a previous write of size 4 by thread #x</text> 263 <hthreadid>2</hthreadid> 264 </xauxwhat> 265 <stack> 266 <frame> 267 <ip>0x........</ip> 268 <obj>...</obj> 269 <fn>child_fn</fn> 270 <dir>...</dir> 271 <file>tc06_two_races.c</file> 272 <line>...</line> 273 </frame> 274 <frame> 275 <ip>0x........</ip> 276 <obj>...</obj> 277 <fn>mythread_wrapper</fn> 278 <dir>...</dir> 279 <file>hg_intercepts.c</file> 280 <line>...</line> 281 </frame> 282 <frame> 283 <ip>0x........</ip> 284 <obj>...</obj> 285 <fn>start_thread</fn> 286 </frame> 287 <frame> 288 <ip>0x........</ip> 289 <obj>...</obj> 290 <fn>clone</fn> 291 </frame> 292 </stack> 293 <auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat> 294 <xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>...</line> </xauxwhat> 295 </error> 296 297 298 <status> 299 <state>FINISHED</state> 300 <time>...</time> 301 </status> 302 303 <errorcounts> 304 <pair> 305 <count>...</count> 306 <unique>0x........</unique> 307 </pair> 308 <pair> 309 <count>...</count> 310 <unique>0x........</unique> 311 </pair> 312 <pair> 313 <count>...</count> 314 <unique>0x........</unique> 315 </pair> 316 <pair> 317 <count>...</count> 318 <unique>0x........</unique> 319 </pair> 320 </errorcounts> 321 322 <suppcounts>...</suppcounts> 323 324 </valgrindoutput> 325 326