Home | History | Annotate | Download | only in helgrind

Lines Matching refs:Race

143       race: program counter
161 XE_Race=1101, // race
197 } Race;
243 XS_Race=1201, /* race */
276 tl_assert(!xe->XE.Race.hctxt);
277 tl_assert(!xe->XE.Race.descr1);
278 tl_assert(!xe->XE.Race.descr2);
287 &xe->XE.Race.hctxt, &xe->XE.Race.haddr, &xe->XE.Race.hszB,
288 xe->XE.Race.data_addr
290 tl_assert(is_heapblock == (xe->XE.Race.hctxt != NULL));
292 if (!xe->XE.Race.hctxt) {
296 xe->XE.Race.descr1
297 = VG_(newXA)( HG_(zalloc), "hg.update_extra.Race.descr1",
299 xe->XE.Race.descr2
300 = VG_(newXA)( HG_(zalloc), "hg.update_extra.Race.descr2",
303 (void) VG_(get_data_description)( xe->XE.Race.descr1,
304 xe->XE.Race.descr2,
305 xe->XE.Race.data_addr );
313 if (0 == VG_(strlen)( VG_(indexXA)( xe->XE.Race.descr1, 0 ))) {
314 VG_(deleteXA)( xe->XE.Race.descr1 );
315 xe->XE.Race.descr1 = NULL;
317 if (0 == VG_(strlen)( VG_(indexXA)( xe->XE.Race.descr2, 0 ))) {
318 VG_(deleteXA)( xe->XE.Race.descr2 );
319 xe->XE.Race.descr2 = NULL;
329 Addr acc_addr = xe->XE.Race.data_addr;
330 Int acc_szB = xe->XE.Race.szB;
331 Thr* acc_thr = xe->XE.Race.thr->hbthr;
332 Bool acc_isW = xe->XE.Race.isWrite;
335 tl_assert(!xe->XE.Race.h2_ct_accEC);
336 tl_assert(!xe->XE.Race.h2_ct);
345 xe->XE.Race.h2_ct_accEC = wherep;
346 xe->XE.Race.h2_ct = threadp;
347 xe->XE.Race.h2_ct_accSzB = (Int)conf_szB;
348 xe->XE.Race.h2_ct_accIsW = conf_isW;
353 tl_assert( (!!xe->XE.Race.h2_ct) == (!!xe->XE.Race.h2_ct_accEC) );
376 if (0) VG_(printf)("XXXXXXXXX RACE on %#lx %s\n",
387 xe.XE.Race.data_addr = data_addr;
388 xe.XE.Race.szB = szB;
389 xe.XE.Race.isWrite = isWrite;
390 xe.XE.Race.thr = thr;
396 tl_assert(xe.XE.Race.descr1 == NULL);
397 tl_assert(xe.XE.Race.descr2 == NULL);
404 xe.XE.Race.h2_ct_accSzB = 0;
405 xe.XE.Race.h2_ct_accIsW = False;
406 xe.XE.Race.h2_ct_accEC = NULL;
407 xe.XE.Race.h2_ct = NULL;
411 xe.XE.Race.h1_ct = h1_ct;
412 xe.XE.Race.h1_ct_mbsegstartEC = h1_ct_segstart;
413 xe.XE.Race.h1_ct_mbsegendEC = h1_ct_mbsegendEC;
549 return xe1->XE.Race.szB == xe2->XE.Race.szB
550 && xe1->XE.Race.isWrite == xe2->XE.Race.isWrite
552 ? xe1->XE.Race.data_addr == xe2->XE.Race.data_addr
695 announce_one_thread( xe->XE.Race.thr );
696 if (xe->XE.Race.h2_ct)
697 announce_one_thread( xe->XE.Race.h2_ct );
698 if (xe->XE.Race.h1_ct)
699 announce_one_thread( xe->XE.Race.h1_ct );
949 what = xe->XE.Race.isWrite ? "write" : "read";
950 szB = xe->XE.Race.szB;
953 tl_assert( HG_(is_sane_Thread)( xe->XE.Race.thr ));
954 if (xe->XE.Race.h2_ct)
955 tl_assert( HG_(is_sane_Thread)( xe->XE.Race.h2_ct ));
960 emit( " <kind>Race</kind>\n" );
962 emit( " <text>Possible data race during %s of size %d "
964 what, szB, err_ga, (Int)xe->XE.Race.thr->errmsg_index );
966 (Int)xe->XE.Race.thr->errmsg_index );
970 if (xe->XE.Race.h2_ct) {
971 tl_assert(xe->XE.Race.h2_ct_accEC); // assured by update_extra
975 xe->XE.Race.h2_ct_accIsW ? "write" : "read",
976 xe->XE.Race.h2_ct_accSzB,
977 xe->XE.Race.h2_ct->errmsg_index );
979 xe->XE.Race.h2_ct->errmsg_index);
981 VG_(pp_ExeContext)( xe->XE.Race.h2_ct_accEC );
984 if (xe->XE.Race.h1_ct) {
988 xe->XE.Race.h1_ct->errmsg_index );
990 xe->XE.Race.h1_ct->errmsg_index );
992 if (xe->XE.Race.h1_ct_mbsegstartEC) {
993 VG_(pp_ExeContext)( xe->XE.Race.h1_ct_mbsegstartEC );
998 if (xe->XE.Race.h1_ct_mbsegendEC) {
999 VG_(pp_ExeContext)( xe->XE.Race.h1_ct_mbsegendEC );
1008 emit( "Possible data race during %s of size %d "
1010 what, szB, err_ga, (Int)xe->XE.Race.thr->errmsg_index );
1013 if (xe->XE.Race.h2_ct) {
1014 tl_assert(xe->XE.Race.h2_ct_accEC); // assured by update_extra
1017 xe->XE.Race.h2_ct_accIsW ? "write" : "read",
1018 xe->XE.Race.h2_ct_accSzB,
1019 xe->XE.Race.h2_ct->errmsg_index );
1020 VG_(pp_ExeContext)( xe->XE.Race.h2_ct_accEC );
1023 if (xe->XE.Race.h1_ct) {
1026 xe->XE.Race.h1_ct->errmsg_index );
1027 if (xe->XE.Race.h1_ct_mbsegstartEC) {
1028 VG_(pp_ExeContext)( xe->XE.Race.h1_ct_mbsegstartEC );
1033 if (xe->XE.Race.h1_ct_mbsegendEC) {
1034 VG_(pp_ExeContext)( xe->XE.Race.h1_ct_mbsegendEC );
1044 if (xe->XE.Race.hctxt) {
1045 SizeT delta = err_ga - xe->XE.Race.haddr;
1049 xe->XE.Race.hszB);
1050 VG_(pp_ExeContext)( xe->XE.Race.hctxt );
1054 xe->XE.Race.hszB);
1055 VG_(pp_ExeContext)( xe->XE.Race.hctxt );
1063 if (xe->XE.Race.descr1)
1065 (HChar*)VG_(indexXA)( xe->XE.Race.descr1, 0 ) );
1066 if (xe->XE.Race.descr2)
1068 (HChar*)VG_(indexXA)( xe->XE.Race.descr2, 0 ) );
1081 case XE_Race: return "Race";
1099 TRY("Race", XS_Race);