Lines Matching defs:xe
230 } XE;
234 static void init_XError ( XError* xe ) {
235 VG_(memset)(xe, 0, sizeof(*xe) );
236 xe->tag = XE_Race-1; /* bogus */
258 XError* xe = (XError*)VG_(get_error_extra)(err);
259 tl_assert(xe);
264 if (xe->tag == XE_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
299 xe->XE.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) );
365 XError xe;
385 init_XError(&xe);
386 xe.tag = XE_Race;
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;
416 XE_Race, data_addr, NULL, &xe );
421 XError xe;
424 init_XError(&xe);
425 xe.tag = XE_UnlockUnlocked;
426 xe.XE.UnlockUnlocked.thr = thr;
427 xe.XE.UnlockUnlocked.lock = mk_LockP_from_LockN(lk);
432 XE_UnlockUnlocked, 0, NULL, &xe );
438 XError xe;
442 init_XError(&xe);
443 xe.tag = XE_UnlockForeign;
444 xe.XE.UnlockForeign.thr = thr;
445 xe.XE.UnlockForeign.owner = owner;
446 xe.XE.UnlockForeign.lock = mk_LockP_from_LockN(lk);
451 XE_UnlockForeign, 0, NULL, &xe );
456 XError xe;
458 init_XError(&xe);
459 xe.tag = XE_UnlockBogus;
460 xe.XE.UnlockBogus.thr = thr;
461 xe.XE.UnlockBogus.lock_ga = lock_ga;
466 XE_UnlockBogus, 0, NULL, &xe );
474 XError xe;
478 init_XError(&xe);
479 xe.tag = XE_LockOrder;
480 xe.XE.LockOrder.thr = thr;
481 xe.XE.LockOrder.before_ga = before_ga;
482 xe.XE.LockOrder.before_ec = before_ec;
483 xe.XE.LockOrder.after_ga = after_ga;
484 xe.XE.LockOrder.after_ec = after_ec;
489 XE_LockOrder, 0, NULL, &xe );
495 XError xe;
499 init_XError(&xe);
500 xe.tag = XE_PthAPIerror;
501 xe.XE.PthAPIerror.thr = thr;
502 xe.XE.PthAPIerror.fnname = string_table_strdup(fnname);
503 xe.XE.PthAPIerror.err = err;
504 xe.XE.PthAPIerror.errstr = string_table_strdup(errstr);
509 XE_PthAPIerror, 0, NULL, &xe );
515 XError xe;
518 init_XError(&xe);
519 xe.tag = XE_Misc;
520 xe.XE.Misc.thr = thr;
521 xe.XE.Misc.errstr = string_table_strdup(errstr);
522 xe.XE.Misc.auxstr = auxstr ? string_table_strdup(auxstr) : NULL;
523 xe.XE.Misc.auxctx = auxctx;
528 XE_Misc, 0, NULL, &xe );
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
555 return xe1->XE.UnlockUnlocked.thr == xe2->XE.UnlockUnlocked.thr
556 && xe1->XE.UnlockUnlocked.lock == xe2->XE.UnlockUnlocked.lock;
558 return xe1->XE.UnlockForeign.thr == xe2->XE.UnlockForeign.thr
559 && xe1->XE.UnlockForeign.owner == xe2->XE.UnlockForeign.owner
560 && xe1->XE.UnlockForeign.lock == xe2->XE.UnlockForeign.lock;
562 return xe1->XE.UnlockBogus.thr == xe2->XE.UnlockBogus.thr
563 && xe1->XE.UnlockBogus.lock_ga == xe2->XE.UnlockBogus.lock_ga;
565 return xe1->XE.PthAPIerror.thr == xe2->XE.PthAPIerror.thr
566 && 0==VG_(strcmp)(xe1->XE.PthAPIerror.fnname,
567 xe2->XE.PthAPIerror.fnname)
568 && xe1->XE.PthAPIerror.err == xe2->XE.PthAPIerror.err;
570 return xe1->XE.LockOrder.thr == xe2->XE.LockOrder.thr;
572 return xe1->XE.Misc.thr == xe2->XE.Misc.thr
573 && 0==VG_(strcmp)(xe1->XE.Misc.errstr, xe2->XE.Misc.errstr);
669 XError* xe;
671 xe = (XError*)VG_(get_error_extra)(err);
672 tl_assert(xe);
676 announce_one_thread( xe->XE.Misc.thr );
679 announce_one_thread( xe->XE.LockOrder.thr );
682 announce_one_thread( xe->XE.PthAPIerror.thr );
685 announce_one_thread( xe->XE.UnlockBogus.thr );
688 announce_one_thread( xe->XE.UnlockForeign.thr );
689 announce_one_thread( xe->XE.UnlockForeign.owner );
692 announce_one_thread( xe->XE.UnlockUnlocked.thr );
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 );
710 XError *xe = (XError*)VG_(get_error_extra)(err);
711 tl_assert(xe);
716 tl_assert( HG_(is_sane_Thread)( xe->XE.Misc.thr ) );
723 (Int)xe->XE.Misc.thr->errmsg_index,
724 xe->XE.Misc.errstr );
726 (Int)xe->XE.Misc.thr->errmsg_index );
729 if (xe->XE.Misc.auxstr) {
730 emit(" <auxwhat>%s</auxwhat>\n", xe->XE.Misc.auxstr);
731 if (xe->XE.Misc.auxctx)
732 VG_(pp_ExeContext)( xe->XE.Misc.auxctx );
738 (Int)xe->XE.Misc.thr->errmsg_index,
739 xe->XE.Misc.errstr );
741 if (xe->XE.Misc.auxstr) {
742 emit(" %s\n", xe->XE.Misc.auxstr);
743 if (xe->XE.Misc.auxctx)
744 VG_(pp_ExeContext)( xe->XE.Misc.auxctx );
752 tl_assert( HG_(is_sane_Thread)( xe->XE.LockOrder.thr ) );
760 (Int)xe->XE.LockOrder.thr->errmsg_index,
761 (void*)xe->XE.LockOrder.before_ga,
762 (void*)xe->XE.LockOrder.after_ga );
764 (Int)xe->XE.LockOrder.thr->errmsg_index );
767 if (xe->XE.LockOrder.before_ec && xe->XE.LockOrder.after_ec) {
770 (void*)xe->XE.LockOrder.before_ga );
771 VG_(pp_ExeContext)( xe->XE.LockOrder.before_ec );
774 (void*)xe->XE.LockOrder.after_ga );
775 VG_(pp_ExeContext)( xe->XE.LockOrder.after_ec );
781 (Int)xe->XE.LockOrder.thr->errmsg_index,
782 (void*)xe->XE.LockOrder.before_ga,
783 (void*)xe->XE.LockOrder.after_ga );
785 if (xe->XE.LockOrder.before_ec && xe->XE.LockOrder.after_ec) {
788 (void*)xe->XE.LockOrder.before_ga );
789 VG_(pp_ExeContext)( xe->XE.LockOrder.before_ec );
791 (void*)xe->XE.LockOrder.after_ga );
792 VG_(pp_ExeContext)( xe->XE.LockOrder.after_ec );
801 tl_assert( HG_(is_sane_Thread)( xe->XE.PthAPIerror.thr ) );
809 (Int)xe->XE.PthAPIerror.thr->errmsg_index,
810 xe->XE.PthAPIerror.fnname );
812 (Int)xe->XE.PthAPIerror.thr->errmsg_index );
815 xe->XE.PthAPIerror.err, xe->XE.PthAPIerror.errstr );
821 (Int)xe->XE.PthAPIerror.thr->errmsg_index,
822 xe->XE.PthAPIerror.fnname );
824 xe->XE.PthAPIerror.err, xe->XE.PthAPIerror.errstr );
833 tl_assert( HG_(is_sane_Thread)( xe->XE.UnlockBogus.thr ) );
841 (Int)xe->XE.UnlockBogus.thr->errmsg_index,
842 (void*)xe->XE.UnlockBogus.lock_ga );
844 (Int)xe->XE.UnlockBogus.thr->errmsg_index );
851 (Int)xe->XE.UnlockBogus.thr->errmsg_index,
852 (void*)xe->XE.UnlockBogus.lock_ga );
861 tl_assert( HG_(is_sane_LockP)( xe->XE.UnlockForeign.lock ) );
862 tl_assert( HG_(is_sane_Thread)( xe->XE.UnlockForeign.owner ) );
863 tl_assert( HG_(is_sane_Thread)( xe->XE.UnlockForeign.thr ) );
871 (Int)xe->XE.UnlockForeign.thr->errmsg_index,
872 (void*)xe->XE.UnlockForeign.lock->guestaddr,
873 (Int)xe->XE.UnlockForeign.owner->errmsg_index );
875 (Int)xe->XE.UnlockForeign.thr->errmsg_index );
877 (Int)xe->XE.UnlockForeign.owner->errmsg_index );
881 if (xe->XE.UnlockForeign.lock->appeared_at) {
883 (void*)xe->XE.UnlockForeign.lock->guestaddr );
884 VG_(pp_ExeContext)( xe->XE.UnlockForeign.lock->appeared_at );
891 (Int)xe->XE.UnlockForeign.thr->errmsg_index,
892 (void*)xe->XE.UnlockForeign.lock->guestaddr,
893 (Int)xe->XE.UnlockForeign.owner->errmsg_index );
895 if (xe->XE.UnlockForeign.lock->appeared_at) {
897 (void*)xe->XE.UnlockForeign.lock->guestaddr );
898 VG_(pp_ExeContext)( xe->XE.UnlockForeign.lock->appeared_at );
907 tl_assert( HG_(is_sane_LockP)( xe->XE.UnlockUnlocked.lock ) );
908 tl_assert( HG_(is_sane_Thread)( xe->XE.UnlockUnlocked.thr ) );
916 (Int)xe->XE.UnlockUnlocked.thr->errmsg_index,
917 (void*)xe->XE.UnlockUnlocked.lock->guestaddr );
919 (Int)xe->XE.UnlockUnlocked.thr->errmsg_index );
922 if (xe->XE.UnlockUnlocked.lock->appeared_at) {
924 (void*)xe->XE.UnlockUnlocked.lock->guestaddr );
925 VG_(pp_ExeContext)( xe->XE.UnlockUnlocked.lock->appeared_at );
931 (Int)xe->XE.UnlockUnlocked.thr->errmsg_index,
932 (void*)xe->XE.UnlockUnlocked.lock->guestaddr );
934 if (xe->XE.UnlockUnlocked.lock->appeared_at) {
936 xe->XE.UnlockUnlocked.lock->guestaddr );
937 VG_(pp_ExeContext)( xe->XE.UnlockUnlocked.lock->appeared_at );
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 ));
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 );
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 ) );