| 738 | } |
| 739 | |
| 740 | void CeDumpContext::Next() |
| 741 | { |
| 742 | CeOp op = CE_GET(CeOp); |
| 743 | |
| 744 | if (op == CeOp_DbgBreak) |
| 745 | { |
| 746 | int instIdx = mPtr - mCeFunction->mCode.mVals - 2; |
| 747 | CeBreakpointBind* breakpointEntry = NULL; |
| 748 | if (mCeFunction->mBreakpoints.TryGetValue(instIdx, &breakpointEntry)) |
| 749 | { |
| 750 | op = breakpointEntry->mPrevOpCode; |
| 751 | } |
| 752 | } |
| 753 | |
| 754 | CeOpInfo& opInfo = gOpInfo[op]; |
| 755 | |
| 756 | auto argPtr = mPtr; |
| 757 | |
| 758 | if (mCeFunction->mDbgInfo != NULL) |
| 759 | { |
| 760 | for (auto& dbgVar : mCeFunction->mDbgInfo->mVariables) |
| 761 | { |
| 762 | mVarMap[dbgVar.mValue.mFrameOfs] = &dbgVar; |
| 763 | } |
| 764 | } |
| 765 | |
| 766 | int32 sizeX = -1; |
| 767 | if ((opInfo.mFlags & CeOpInfoFlag_SizeX) != 0) |
| 768 | { |
| 769 | sizeX = CE_GET(int); |
| 770 | } |
| 771 | |
| 772 | if (opInfo.mResultKind != CEOI_None) |
| 773 | { |
| 774 | DumpOperandInfo(opInfo.mResultKind); |
| 775 | mStr += " = "; |
| 776 | } |
| 777 | |
| 778 | mStr += opInfo.mName; |
| 779 | |
| 780 | if (sizeX != -1) |
| 781 | { |
| 782 | mStr += StrFormat(":%d", sizeX); |
| 783 | } |
| 784 | |
| 785 | if (opInfo.mOperandA != CEOI_None) |
| 786 | { |
| 787 | mStr += " "; |
| 788 | DumpOperandInfo(opInfo.mOperandA); |
| 789 | } |
| 790 | |
| 791 | if (opInfo.mOperandB != CEOI_None) |
| 792 | { |
| 793 | mStr += ", "; |
| 794 | DumpOperandInfo(opInfo.mOperandB); |
| 795 | } |
| 796 | |
| 797 | if (opInfo.mOperandC != CEOI_None) |
no test coverage detected