Home | History | Annotate | Download | only in helgrind

Lines Matching refs:XE

352       } XE;
356 static void init_XError ( XError* xe ) {
357 VG_(memset)(xe, 0, sizeof(*xe) );
358 xe->tag = XE_Race-1; /* bogus */
380 XError* xe = (XError*)VG_(get_error_extra)(err);
381 tl_assert(xe);
386 if (xe->tag == XE_Race) {
392 tl_assert(xe->XE.Race.thr);
393 xe->XE.Race.locksHeldW
396 xe->XE.Race.thr->locksetW,
410 HG_(describe_addr) (xe->XE.Race.data_addr, &xe->XE.Race.data_addrinfo);
418 Addr acc_addr = xe->XE.Race.data_addr;
419 Int acc_szB = xe->XE.Race.szB;
420 Thr* acc_thr = xe->XE.Race.thr->hbthr;
421 Bool acc_isW = xe->XE.Race.isWrite;
425 tl_assert(!xe->XE.Race.h2_ct_accEC);
426 tl_assert(!xe->XE.Race.h2_ct);
435 xe->XE.Race.h2_ct_accEC = wherep;
436 xe->XE.Race.h2_ct = threadp;
437 xe->XE.Race.h2_ct_accSzB = (Int)conf_szB;
438 xe->XE.Race.h2_ct_accIsW = conf_isW;
439 xe->XE.Race.h2_ct_locksHeldW
449 tl_assert( (!!xe->XE.Race.h2_ct) == (!!xe->XE.Race.h2_ct_accEC) );
461 xe;
481 init_XError(&xe);
482 xe.tag = XE_Race;
483 xe.XE.Race.data_addr = data_addr;
484 xe.XE.Race.szB = szB;
485 xe.XE.Race.isWrite = isWrite;
486 xe.XE.Race.thr = thr;
492 xe.XE.Race.data_addrinfo.tag = Addr_Undescribed;
499 xe.XE.Race.h2_ct_accSzB = 0;
500 xe.XE.Race.h2_ct_accIsW = False;
501 xe.XE.Race.h2_ct_accEC = NULL;
502 xe.XE.Race.h2_ct = NULL;
506 xe.XE.Race.h1_ct = h1_ct;
507 xe.XE.Race.h1_ct_mbsegstartEC = h1_ct_segstart;
508 xe.XE.Race.h1_ct_mbsegendEC = h1_ct_mbsegendEC;
511 XE_Race, data_addr, NULL, &xe );
516 XError xe;
519 init_XError(&xe);
520 xe.tag = XE_UnlockUnlocked;
521 xe.XE.UnlockUnlocked.thr
523 xe.XE.UnlockUnlocked.lock
529 XE_UnlockUnlocked, 0, NULL, &xe );
535 XError xe;
539 init_XError(&xe);
540 xe.tag = XE_UnlockForeign;
541 xe.XE.UnlockForeign.thr = thr;
542 xe.XE.UnlockForeign.owner = owner;
543 xe.XE.UnlockForeign.lock
549 XE_UnlockForeign, 0, NULL, &xe );
554 XError xe;
556 init_XError(&xe);
557 xe.tag = XE_UnlockBogus;
558 xe.XE.UnlockBogus.thr = thr;
559 xe.XE.UnlockBogus.lock_ga = lock_ga;
564 XE_UnlockBogus, 0, NULL, &xe );
576 XError xe;
579 init_XError(&xe);
580 xe.tag = XE_LockOrder;
581 xe.XE.LockOrder.thr = thr;
582 xe.XE.LockOrder.shouldbe_earlier_ga = shouldbe_earlier_ga;
583 xe.XE.LockOrder.shouldbe_earlier_ec = shouldbe_earlier_ec;
584 xe.XE.LockOrder.shouldbe_later_ga = shouldbe_later_ga;
585 xe.XE.LockOrder.shouldbe_later_ec = shouldbe_later_ec;
586 xe.XE.LockOrder.actual_earlier_ec = actual_earlier_ec;
591 XE_LockOrder, 0, NULL, &xe );
597 XError xe;
601 init_XError(&xe);
602 xe.tag = XE_PthAPIerror;
603 xe.XE.PthAPIerror.thr = thr;
604 xe.XE.PthAPIerror.fnname = string_table_strdup(fnname);
605 xe.XE.PthAPIerror.err = err;
606 xe.XE.PthAPIerror.errstr = string_table_strdup(errstr);
611 XE_PthAPIerror, 0, NULL, &xe );
617 XError xe;
620 init_XError(&xe);
621 xe.tag = XE_Misc;
622 xe.XE.Misc.thr = thr;
623 xe.XE.Misc.errstr = string_table_strdup(errstr);
624 xe.XE.Misc.auxstr = auxstr ? string_table_strdup(auxstr) : NULL;
625 xe.XE.Misc.auxctx = auxctx;
630 XE_Misc, 0, NULL, &xe );
651 return xe1->XE.Race.szB == xe2->XE.Race.szB
652 && xe1->XE.Race.isWrite == xe2->XE.Race.isWrite
654 ? xe1->XE.Race.data_addr == xe2->XE.Race.data_addr
657 return xe1->XE.UnlockUnlocked.thr == xe2->XE.UnlockUnlocked.thr
658 && xe1->XE.UnlockUnlocked.lock == xe2->XE.UnlockUnlocked.lock;
660 return xe1->XE.UnlockForeign.thr == xe2->XE.UnlockForeign.thr
661 && xe1->XE.UnlockForeign.owner == xe2->XE.UnlockForeign.owner
662 && xe1->XE.UnlockForeign.lock == xe2->XE.UnlockForeign.lock;
664 return xe1->XE.UnlockBogus.thr == xe2->XE.UnlockBogus.thr
665 && xe1->XE.UnlockBogus.lock_ga == xe2->XE.UnlockBogus.lock_ga;
667 return xe1->XE.PthAPIerror.thr == xe2->XE.PthAPIerror.thr
668 && 0==VG_(strcmp)(xe1->XE.PthAPIerror.fnname,
669 xe2->XE.PthAPIerror.fnname)
670 && xe1->XE.PthAPIerror.err == xe2->XE.PthAPIerror.err;
672 return xe1->XE.LockOrder.thr == xe2->XE.LockOrder.thr;
674 return xe1->XE.Misc.thr == xe2->XE.Misc.thr
675 && 0==VG_(strcmp)(xe1->XE.Misc.errstr, xe2->XE.Misc.errstr);
837 XError* xe;
839 xe = (XError*)VG_(get_error_extra)(err);
840 tl_assert(xe);
844 announce_one_thread( xe->XE.Misc.thr );
847 announce_one_thread( xe->XE.LockOrder.thr );
850 announce_one_thread( xe->XE.PthAPIerror.thr );
853 announce_one_thread( xe->XE.UnlockBogus.thr );
856 announce_one_thread( xe->XE.UnlockForeign.thr );
857 announce_one_thread( xe->XE.UnlockForeign.owner );
860 announce_one_thread( xe->XE.UnlockUnlocked.thr );
863 announce_one_thread( xe->XE.Race.thr );
864 if (xe->XE.Race.h2_ct)
865 announce_one_thread( xe->XE.Race.h2_ct );
866 if (xe->XE.Race.h1_ct)
867 announce_one_thread( xe->XE.Race.h1_ct );
884 XError *xe = (XError*)VG_(get_error_extra)(err);
885 tl_assert(xe);
893 tl_assert( HG_(is_sane_Thread)( xe->XE.Misc.thr ) );
899 (Int)xe->XE.Misc.thr->errmsg_index,
900 xe->XE.Misc.errstr );
902 (Int)xe->XE.Misc.thr->errmsg_index );
905 if (xe->XE.Misc.auxstr) {
906 emit(" <auxwhat>%s</auxwhat>\n", xe->XE.Misc.auxstr);
907 if (xe->XE.Misc.auxctx)
908 VG_(pp_ExeContext)( xe->XE.Misc.auxctx );
914 (Int)xe->XE.Misc.thr->errmsg_index,
915 xe->XE.Misc.errstr );
917 if (xe->XE.Misc.auxstr) {
918 emit(" %s\n", xe->XE.Misc.auxstr);
919 if (xe->XE.Misc.auxctx)
920 VG_(pp_ExeContext)( xe->XE.Misc.auxctx );
928 tl_assert( HG_(is_sane_Thread)( xe->XE.LockOrder.thr ) );
935 (Int)xe->XE.LockOrder.thr->errmsg_index,
936 (void*)xe->XE.LockOrder.shouldbe_earlier_ga,
937 (void*)xe->XE.LockOrder.shouldbe_later_ga );
939 (Int)xe->XE.LockOrder.thr->errmsg_index );
942 if (xe->XE.LockOrder.shouldbe_earlier_ec
943 && xe->XE.LockOrder.shouldbe_later_ec) {
946 (void*)xe->XE.LockOrder.shouldbe_earlier_ga );
947 VG_(pp_ExeContext)( xe->XE.LockOrder.shouldbe_earlier_ec );
950 (void*)xe->XE
951 VG_(pp_ExeContext)( xe->XE.LockOrder.shouldbe_later_ec );
957 (Int)xe->XE.LockOrder.thr->errmsg_index,
958 (void*)xe->XE.LockOrder.shouldbe_earlier_ga,
959 (void*)xe->XE.LockOrder.shouldbe_later_ga );
963 (void*)xe->XE.LockOrder.shouldbe_later_ga);
964 if (xe->XE.LockOrder.actual_earlier_ec) {
965 VG_(pp_ExeContext)(xe->XE.LockOrder.actual_earlier_ec);
971 (void*)xe->XE.LockOrder.shouldbe_earlier_ga);
973 if (xe->XE.LockOrder.shouldbe_earlier_ec
974 && xe->XE.LockOrder.shouldbe_later_ec) {
978 (void*)xe->XE.LockOrder.shouldbe_earlier_ga );
979 VG_(pp_ExeContext)( xe->XE.LockOrder.shouldbe_earlier_ec );
982 (void*)xe->XE.LockOrder.shouldbe_later_ga );
983 VG_(pp_ExeContext)( xe->XE.LockOrder.shouldbe_later_ec );
992 tl_assert( HG_(is_sane_Thread)( xe->XE.PthAPIerror.thr ) );
999 (Int)xe->XE.PthAPIerror.thr->errmsg_index,
1000 xe->XE.PthAPIerror.fnname );
1002 (Int)xe->XE.PthAPIerror.thr->errmsg_index );
1005 xe->XE.PthAPIerror.err, xe->XE.PthAPIerror.errstr );
1011 (Int)xe->XE.PthAPIerror.thr->errmsg_index,
1012 xe->XE.PthAPIerror.fnname );
1014 xe->XE.PthAPIerror.err, xe->XE.PthAPIerror.errstr );
1023 tl_assert( HG_(is_sane_Thread)( xe->XE.UnlockBogus.thr ) );
1030 (Int)xe->XE.UnlockBogus.thr->errmsg_index,
1031 (void*)xe->XE.UnlockBogus.lock_ga );
1033 (Int)xe->XE.UnlockBogus.thr->errmsg_index );
1040 (Int)xe->XE.UnlockBogus.thr->errmsg_index,
1041 (void*)xe->XE.UnlockBogus.lock_ga );
1050 tl_assert( HG_(is_sane_LockP)( xe->XE.UnlockForeign.lock ) );
1051 tl_assert( HG_(is_sane_Thread)( xe->XE.UnlockForeign.owner ) );
1052 tl_assert( HG_(is_sane_Thread)( xe->XE.UnlockForeign.thr ) );
1059 (Int)xe->XE.UnlockForeign.thr->errmsg_index,
1060 (void*)xe->XE.UnlockForeign.lock->guestaddr,
1061 (Int)xe->XE.UnlockForeign.owner->errmsg_index );
1063 (Int)xe->XE.UnlockForeign.thr->errmsg_index );
1065 (Int)xe->XE.UnlockForeign.owner->errmsg_index );
1069 if (xe->XE.UnlockForeign.lock->appeared_at) {
1071 (void*)xe->XE.UnlockForeign.lock->guestaddr );
1072 VG_(pp_ExeContext)( xe->XE.UnlockForeign.lock->appeared_at );
1079 (Int)xe->XE.UnlockForeign.thr->errmsg_index,
1080 (void*)xe->XE.UnlockForeign.lock->guestaddr,
1081 (Int)xe->XE.UnlockForeign.owner->errmsg_index );
1083 if (xe->XE.UnlockForeign.lock->appeared_at) {
1085 (void*)xe->XE.UnlockForeign.lock->guestaddr );
1086 VG_(pp_ExeContext)( xe->XE.UnlockForeign.lock->appeared_at );
1095 tl_assert( HG_(is_sane_LockP)( xe->XE.UnlockUnlocked.lock ) );
1096 tl_assert( HG_(is_sane_Thread)( xe->XE.UnlockUnlocked.thr ) );
1103 (Int)xe->XE.UnlockUnlocked.thr->errmsg_index,
1104 (void*)xe->XE.UnlockUnlocked.lock->guestaddr );
1106 (Int)xe->XE.UnlockUnlocked.thr->errmsg_index );
1109 if (xe->XE.UnlockUnlocked.lock->appeared_at) {
1111 (void*)xe->XE.UnlockUnlocked.lock->guestaddr );
1112 VG_(pp_ExeContext)( xe->XE.UnlockUnlocked.lock->appeared_at );
1118 (Int)xe->XE.UnlockUnlocked.thr->errmsg_index,
1119 (void*)xe->XE.UnlockUnlocked.lock->guestaddr );
1121 if (xe->XE.UnlockUnlocked.lock->appeared_at) {
1123 (void*)xe->XE.UnlockUnlocked.lock->guestaddr );
1124 VG_(pp_ExeContext)( xe->XE.UnlockUnlocked.lock->appeared_at );
1136 what = xe->XE.Race.isWrite ? "write" : "read";
1137 szB = xe->XE.Race.szB;
1140 tl_assert( HG_(is_sane_Thread)( xe->XE.Race.thr ));
1141 if (xe->XE.Race.h2_ct)
1142 tl_assert( HG_(is_sane_Thread)( xe->XE.Race.h2_ct ));
1150 what, szB, (void*)err_ga, (Int)xe->XE.Race.thr->errmsg_index );
1152 (Int)xe->XE.Race.thr->errmsg_index );
1156 if (xe->XE.Race.h2_ct) {
1157 tl_assert(xe->XE.Race.h2_ct_accEC); // assured by update_extra
1161 xe->XE.Race.h2_ct_accIsW ? "write" : "read",
1162 xe->XE.Race.h2_ct_accSzB,
1163 xe->XE.Race.h2_ct->errmsg_index );
1165 xe->XE.Race.h2_ct->errmsg_index);
1167 VG_(pp_ExeContext)( xe->XE.Race.h2_ct_accEC );
1170 if (xe->XE.Race.h1_ct) {
1174 xe->XE.Race.h1_ct->errmsg_index );
1176 xe->XE.Race.h1_ct->errmsg_index );
1178 if (xe->XE.Race.h1_ct_mbsegstartEC) {
1179 VG_(pp_ExeContext)( xe->XE.Race.h1_ct_mbsegstartEC );
1184 if (xe->XE.Race.h1_ct_mbsegendEC) {
1185 VG_(pp_ExeContext)( xe->XE.Race.h1_ct_mbsegendEC );
1194 announce_combined_LockP_vecs( xe->XE.Race.locksHeldW,
1195 xe->XE.Race.h2_ct_locksHeldW );
1199 what, szB, (void*)err_ga, (Int)xe->XE.Race.thr->errmsg_index );
1201 tl_assert(xe->XE.Race.locksHeldW);
1202 show_LockP_summary_textmode( xe->XE.Race.locksHeldW, "" );
1205 if (xe->XE.Race.h2_ct) {
1206 tl_assert(xe->XE.Race.h2_ct_accEC); // assured by update_extra
1207 tl_assert(xe->XE.Race.h2_ct_locksHeldW);
1211 xe->XE.Race.h2_ct_accIsW ? "write" : "read",
1212 xe->XE.Race.h2_ct_accSzB,
1213 xe->XE.Race.h2_ct->errmsg_index );
1214 show_LockP_summary_textmode( xe->XE.Race.h2_ct_locksHeldW, "" );
1215 VG_(pp_ExeContext)( xe->XE.Race.h2_ct_accEC );
1218 if (xe->XE.Race.h1_ct) {
1221 xe->XE.Race.h1_ct->errmsg_index );
1222 if (xe->XE.Race.h1_ct_mbsegstartEC) {
1223 VG_(pp_ExeContext)( xe->XE.Race.h1_ct_mbsegstartEC );
1228 if (xe->XE.Race.h1_ct_mbsegendEC) {
1229 VG_(pp_ExeContext)( xe->XE.Race.h1_ct_mbsegendEC );
1236 VG_(pp_addrinfo) (err_ga, &xe->XE.Race.data_addrinfo);