Lines Matching refs:XE
366 } XE;
370 static void init_XError ( XError* xe ) {
371 VG_(memset)(xe, 0, sizeof(*xe) );
372 xe->tag = XE_Race-1; /* bogus */
394 XError* xe = (XError*)VG_(get_error_extra)(err);
395 tl_assert(xe);
400 if (xe->tag == XE_Race) {
406 tl_assert(xe->XE.Race.thr);
407 xe->XE.Race.locksHeldW
410 xe->XE.Race.thr->locksetW,
424 HG_(describe_addr) (xe->XE.Race.data_addr, &xe->XE.Race.data_addrinfo);
432 Addr acc_addr = xe->XE.Race.data_addr;
433 Int acc_szB = xe->XE.Race.szB;
434 Thr* acc_thr = xe->XE.Race.thr->hbthr;
435 Bool acc_isW = xe->XE.Race.isWrite;
439 tl_assert(!xe->XE.Race.h2_ct_accEC);
440 tl_assert(!xe->XE.Race.h2_ct);
449 xe->XE.Race.h2_ct_accEC = wherep;
450 xe->XE.Race.h2_ct = threadp;
451 xe->XE.Race.h2_ct_accSzB = (Int)conf_szB;
452 xe->XE.Race.h2_ct_accIsW = conf_isW;
453 xe->XE.Race.h2_ct_locksHeldW
463 tl_assert( (!!xe->XE.Race.h2_ct) == (!!xe->XE.Race.h2_ct_accEC) );
475 XError xe;
497 init_XError(&xe);
498 xe.tag = XE_Race;
499 xe.XE.Race.data_addr = data_addr;
500 xe.XE.Race.szB = szB;
501 xe.XE.Race.isWrite = isWrite;
502 xe.XE.Race.thr = thr;
508 xe.XE.Race.data_addrinfo.tag = Addr_Undescribed;
515 xe.XE.Race.h2_ct_accSzB = 0;
516 xe.XE.Race.h2_ct_accIsW = False;
517 xe.XE.Race.h2_ct_accEC = NULL;
518 xe.XE.Race.h2_ct = NULL;
522 xe.XE.Race.h1_ct = h1_ct;
523 xe.XE.Race.h1_ct_mbsegstartEC = h1_ct_segstart;
524 xe.XE.Race.h1_ct_mbsegendEC = h1_ct_mbsegendEC;
527 XE_Race, data_addr, NULL, &xe );
532 XError xe;
535 init_XError(&xe);
536 xe.tag = XE_UnlockUnlocked;
537 xe.XE.UnlockUnlocked.thr
539 xe.XE.UnlockUnlocked.lock
545 XE_UnlockUnlocked, 0, NULL, &xe );
551 XError xe;
555 init_XError(&xe);
556 xe.tag = XE_UnlockForeign;
557 xe.XE.UnlockForeign.thr = thr;
558 xe.XE.UnlockForeign.owner = owner;
559 xe.XE.UnlockForeign.lock
565 XE_UnlockForeign, 0, NULL, &xe );
570 XError xe;
572 init_XError(&xe);
573 xe.tag = XE_UnlockBogus;
574 xe.XE.UnlockBogus.thr = thr;
575 xe.XE.UnlockBogus.lock_ga = lock_ga;
580 XE_UnlockBogus, 0, NULL, &xe );
592 XError xe;
595 init_XError(&xe);
596 xe.tag = XE_LockOrder;
597 xe.XE.LockOrder.thr = thr;
598 xe.XE.LockOrder.shouldbe_earlier_lk
601 xe.XE.LockOrder.shouldbe_earlier_ec = shouldbe_earlier_ec;
602 xe.XE.LockOrder.shouldbe_later_lk
605 xe.XE.LockOrder.shouldbe_later_ec = shouldbe_later_ec;
606 xe.XE.LockOrder.actual_earlier_ec = actual_earlier_ec;
611 XE_LockOrder, 0, NULL, &xe );
617 XError xe;
621 init_XError(&xe);
622 xe.tag = XE_PthAPIerror;
623 xe.XE.PthAPIerror.thr = thr;
624 xe.XE.PthAPIerror.fnname = string_table_strdup(fnname);
625 xe.XE.PthAPIerror.err = err;
626 xe.XE.PthAPIerror.errstr = string_table_strdup(errstr);
631 XE_PthAPIerror, 0, NULL, &xe );
637 XError xe;
640 init_XError(&xe);
641 xe.tag = XE_Misc;
642 xe.XE.Misc.thr = thr;
643 xe.XE.Misc.errstr = string_table_strdup(errstr);
644 xe.XE.Misc.auxstr = auxstr ? string_table_strdup(auxstr) : NULL;
645 xe.XE.Misc.auxctx = auxctx;
650 XE_Misc, 0, NULL, &xe );
671 return xe1->XE.Race.szB == xe2->XE.Race.szB
672 && xe1->XE.Race.isWrite == xe2->XE.Race.isWrite
674 ? xe1->XE.Race.data_addr == xe2->XE.Race.data_addr
677 return xe1->XE.UnlockUnlocked.thr == xe2->XE.UnlockUnlocked.thr
678 && xe1->XE.UnlockUnlocked.lock == xe2->XE.UnlockUnlocked.lock;
680 return xe1->XE.UnlockForeign.thr == xe2->XE.UnlockForeign.thr
681 && xe1->XE.UnlockForeign.owner == xe2->XE.UnlockForeign.owner
682 && xe1->XE.UnlockForeign.lock == xe2->XE.UnlockForeign.lock;
684 return xe1->XE.UnlockBogus.thr == xe2->XE.UnlockBogus.thr
685 && xe1->XE.UnlockBogus.lock_ga == xe2->XE.UnlockBogus.lock_ga;
687 return xe1->XE.PthAPIerror.thr == xe2->XE.PthAPIerror.thr
688 && 0==VG_(strcmp)(xe1->XE.PthAPIerror.fnname,
689 xe2->XE.PthAPIerror.fnname)
690 && xe1->XE.PthAPIerror.err == xe2->XE.PthAPIerror.err;
692 return xe1->XE.LockOrder.thr == xe2->XE.LockOrder.thr;
694 return xe1->XE.Misc.thr == xe2->XE.Misc.thr
695 && 0==VG_(strcmp)(xe1->XE.Misc.errstr, xe2->XE.Misc.errstr);
866 XError* xe;
868 xe = (XError*)VG_(get_error_extra)(err);
869 tl_assert(xe);
873 announce_one_thread( xe->XE.Misc.thr );
876 announce_one_thread( xe->XE.LockOrder.thr );
879 announce_one_thread( xe->XE.PthAPIerror.thr );
882 announce_one_thread( xe->XE.UnlockBogus.thr );
885 announce_one_thread( xe->XE.UnlockForeign.thr );
886 announce_one_thread( xe->XE.UnlockForeign.owner );
889 announce_one_thread( xe->XE.UnlockUnlocked.thr );
892 announce_one_thread( xe->XE.Race.thr );
893 if (xe->XE.Race.h2_ct)
894 announce_one_thread( xe->XE.Race.h2_ct );
895 if (xe->XE.Race.h1_ct)
896 announce_one_thread( xe->XE.Race.h1_ct );
897 if (xe->XE.Race.data_addrinfo.Addr.Block.alloc_tinfo.tnr) {
901 == xe->XE.Race.data_addrinfo.Addr.Block.alloc_tinfo.tnr) {
924 XError *xe = (XError*)VG_(get_error_extra)(err);
925 tl_assert(xe);
933 tl_assert( HG_(is_sane_Thread)( xe->XE.Misc.thr ) );
939 (Int)xe->XE.Misc.thr->errmsg_index,
940 xe->XE.Misc.errstr );
942 (Int)xe->XE.Misc.thr->errmsg_index );
945 if (xe->XE.Misc.auxstr) {
946 emit(" <auxwhat>%s</auxwhat>\n", xe->XE.Misc.auxstr);
947 if (xe->XE.Misc.auxctx)
948 VG_(pp_ExeContext)( xe->XE.Misc.auxctx );
954 (Int)xe->XE.Misc.thr->errmsg_index,
955 xe->XE.Misc.errstr );
957 if (xe->XE.Misc.auxstr) {
958 emit(" %s\n", xe->XE.Misc.auxstr);
959 if (xe->XE.Misc.auxctx)
960 VG_(pp_ExeContext)( xe->XE.Misc.auxctx );
968 tl_assert( HG_(is_sane_Thread)( xe->XE.LockOrder.thr ) );
975 (Int)xe->XE.LockOrder.thr->errmsg_index,
976 (void*)xe->XE.LockOrder.shouldbe_earlier_lk->guestaddr,
977 (void*)xe->XE.LockOrder.shouldbe_later_lk->guestaddr );
979 (Int)xe->XE.LockOrder.thr->errmsg_index );
982 if (xe->XE.LockOrder.shouldbe_earlier_ec
983 && xe->XE.LockOrder.shouldbe_later_ec) {
986 (void*)xe->XE.LockOrder.shouldbe_earlier_lk->guestaddr );
987 VG_(pp_ExeContext)( xe->XE.LockOrder.shouldbe_earlier_ec );
990 (void*)xe->XE.LockOrder.shouldbe_later_lk->guestaddr );
991 VG_(pp_ExeContext)( xe->XE.LockOrder.shouldbe_later_ec );
993 announce_LockP ( xe->XE.LockOrder.shouldbe_earlier_lk );
994 announce_LockP ( xe->XE.LockOrder.shouldbe_later_lk );
999 (Int)xe->XE.LockOrder.thr->errmsg_index,
1000 (void*)xe->XE.LockOrder.shouldbe_earlier_lk->guestaddr,
1001 (void*)xe->XE.LockOrder.shouldbe_later_lk->guestaddr );
1005 (void*)xe->XE.LockOrder.shouldbe_later_lk->guestaddr);
1006 if (xe->XE.LockOrder.actual_earlier_ec) {
1007 VG_(pp_ExeContext)(xe->XE.LockOrder.actual_earlier_ec);
1013 (void*)xe->XE.LockOrder.shouldbe_earlier_lk->guestaddr);
1015 if (xe->XE.LockOrder.shouldbe_earlier_ec
1016 && xe->XE.LockOrder.shouldbe_later_ec) {
1020 (void*)xe->XE.LockOrder.shouldbe_earlier_lk->guestaddr );
1021 VG_(pp_ExeContext)( xe->XE.LockOrder.shouldbe_earlier_ec );
1024 (void*)xe->XE.LockOrder.shouldbe_later_lk->guestaddr );
1025 VG_(pp_ExeContext)( xe->XE.LockOrder.shouldbe_later_ec );
1028 announce_LockP ( xe->XE.LockOrder.shouldbe_earlier_lk );
1029 announce_LockP ( xe->XE.LockOrder.shouldbe_later_lk );
1037 tl_assert( HG_(is_sane_Thread)( xe->XE.PthAPIerror.thr ) );
1044 (Int)xe->XE.PthAPIerror.thr->errmsg_index,
1045 xe->XE.PthAPIerror.fnname );
1047 (Int)xe->XE.PthAPIerror.thr->errmsg_index );
1050 xe->XE.PthAPIerror.err, xe->XE.PthAPIerror.errstr );
1056 (Int)xe->XE.PthAPIerror.thr->errmsg_index,
1057 xe->XE.PthAPIerror.fnname );
1059 xe->XE.PthAPIerror.err, xe->XE.PthAPIerror.errstr );
1068 tl_assert( HG_(is_sane_Thread)( xe->XE.UnlockBogus.thr ) );
1075 (Int)xe->XE.UnlockBogus.thr->errmsg_index,
1076 (void*)xe->XE.UnlockBogus.lock_ga );
1078 (Int)xe->XE.UnlockBogus.thr->errmsg_index );
1085 (Int)xe->XE.UnlockBogus.thr->errmsg_index,
1086 (void*)xe->XE.UnlockBogus.lock_ga );
1095 tl_assert( HG_(is_sane_LockP)( xe->XE.UnlockForeign.lock ) );
1096 tl_assert( HG_(is_sane_Thread)( xe->XE.UnlockForeign.owner ) );
1097 tl_assert( HG_(is_sane_Thread)( xe->XE.UnlockForeign.thr ) );
1104 (Int)xe->XE.UnlockForeign.thr->errmsg_index,
1105 (void*)xe->XE.UnlockForeign.lock->guestaddr,
1106 (Int)xe->XE.UnlockForeign.owner->errmsg_index );
1108 (Int)xe->XE.UnlockForeign.thr->errmsg_index );
1110 (Int)xe->XE.UnlockForeign.owner->errmsg_index );
1113 announce_LockP ( xe->XE.UnlockForeign.lock );
1119 (Int)xe->XE.UnlockForeign.thr->errmsg_index,
1120 (void*)xe->XE.UnlockForeign.lock->guestaddr,
1121 (Int)xe->XE.UnlockForeign.owner->errmsg_index );
1123 announce_LockP ( xe->XE.UnlockForeign.lock );
1131 tl_assert( HG_(is_sane_LockP)( xe->XE.UnlockUnlocked.lock ) );
1132 tl_assert( HG_(is_sane_Thread)( xe->XE.UnlockUnlocked.thr ) );
1139 (Int)xe->XE.UnlockUnlocked.thr->errmsg_index,
1140 (void*)xe->XE.UnlockUnlocked.lock->guestaddr );
1142 (Int)xe->XE.UnlockUnlocked.thr->errmsg_index );
1145 announce_LockP ( xe->XE.UnlockUnlocked.lock);
1150 (Int)xe->XE.UnlockUnlocked.thr->errmsg_index,
1151 (void*)xe->XE.UnlockUnlocked.lock->guestaddr );
1153 announce_LockP ( xe->XE.UnlockUnlocked.lock);
1164 what = xe->XE.Race.isWrite ? "write" : "read";
1165 szB = xe->XE.Race.szB;
1168 tl_assert( HG_(is_sane_Thread)( xe->XE.Race.thr ));
1169 if (xe->XE.Race.h2_ct)
1170 tl_assert( HG_(is_sane_Thread)( xe->XE.Race.h2_ct ));
1178 what, szB, (void*)err_ga, (Int)xe->XE.Race.thr->errmsg_index );
1180 (Int)xe->XE.Race.thr->errmsg_index );
1184 if (xe->XE.Race.h2_ct) {
1185 tl_assert(xe->XE.Race.h2_ct_accEC); // assured by update_extra
1189 xe->XE.Race.h2_ct_accIsW ? "write" : "read",
1190 xe->XE.Race.h2_ct_accSzB,
1191 xe->XE.Race.h2_ct->errmsg_index );
1193 xe->XE.Race.h2_ct->errmsg_index);
1195 VG_(pp_ExeContext)( xe->XE.Race.h2_ct_accEC );
1198 if (xe->XE.Race.h1_ct) {
1202 xe->XE.Race.h1_ct->errmsg_index );
1204 xe->XE.Race.h1_ct->errmsg_index );
1206 if (xe->XE.Race.h1_ct_mbsegstartEC) {
1207 VG_(pp_ExeContext)( xe->XE.Race.h1_ct_mbsegstartEC );
1212 if (xe->XE.Race.h1_ct_mbsegendEC) {
1213 VG_(pp_ExeContext)( xe->XE.Race.h1_ct_mbsegendEC );
1222 announce_combined_LockP_vecs( xe->XE.Race.locksHeldW,
1223 xe->XE.Race.h2_ct_locksHeldW );
1227 what, szB, (void*)err_ga, (Int)xe->XE.Race.thr->errmsg_index );
1229 tl_assert(xe->XE.Race.locksHeldW);
1230 show_LockP_summary_textmode( xe->XE.Race.locksHeldW, "" );
1233 if (xe->XE.Race.h2_ct) {
1234 tl_assert(xe->XE.Race.h2_ct_accEC); // assured by update_extra
1235 tl_assert(xe->XE.Race.h2_ct_locksHeldW);
1239 xe->XE.Race.h2_ct_accIsW ? "write" : "read",
1240 xe->XE.Race.h2_ct_accSzB,
1241 xe->XE.Race.h2_ct->errmsg_index );
1242 show_LockP_summary_textmode( xe->XE.Race.h2_ct_locksHeldW, "" );
1243 VG_(pp_ExeContext)( xe->XE.Race.h2_ct_accEC );
1246 if (xe->XE.Race.h1_ct) {
1249 xe->XE.Race.h1_ct->errmsg_index );
1250 if (xe->XE.Race.h1_ct_mbsegstartEC) {
1251 VG_(pp_ExeContext)( xe->XE.Race.h1_ct_mbsegstartEC );
1256 if (xe->XE.Race.h1_ct_mbsegendEC) {
1257 VG_(pp_ExeContext)( xe->XE.Race.h1_ct_mbsegendEC );
1264 VG_(pp_addrinfo) (err_ga, &xe->XE.Race.data_addrinfo);