| 825 | } |
| 826 | |
| 827 | void CeDumpContext::Dump() |
| 828 | { |
| 829 | if (!mCeFunction->mGenError.IsEmpty()) |
| 830 | mStr += StrFormat("Gen Error: %s\n", mCeFunction->mGenError.c_str()); |
| 831 | mStr += StrFormat("Frame Size: %d\n", mCeFunction->mFrameSize); |
| 832 | |
| 833 | uint8* start = mPtr; |
| 834 | int curEmitIdx = 0; |
| 835 | CeEmitEntry* curEmitEntry = NULL; |
| 836 | |
| 837 | while (mPtr < mEnd) |
| 838 | { |
| 839 | int ofs = mPtr - start; |
| 840 | |
| 841 | while ((curEmitIdx < mCeFunction->mEmitTable.mSize - 1) && (ofs >= mCeFunction->mEmitTable[curEmitIdx + 1].mCodePos)) |
| 842 | curEmitIdx++; |
| 843 | if (curEmitIdx < mCeFunction->mEmitTable.mSize) |
| 844 | curEmitEntry = &mCeFunction->mEmitTable[curEmitIdx]; |
| 845 | |
| 846 | mStr += StrFormat("%04X: ", ofs); |
| 847 | Next(); |
| 848 | |
| 849 | if ((curEmitEntry != NULL) && (curEmitEntry->mScope != -1)) |
| 850 | { |
| 851 | mStr += StrFormat(" @%d[%s:%d]", curEmitIdx, GetFileName(mCeFunction->mDbgScopes[curEmitEntry->mScope].mFilePath).c_str(), |
| 852 | curEmitEntry->mLine + 1, curEmitEntry->mColumn + 1); |
| 853 | } |
| 854 | |
| 855 | mStr += "\n"; |
| 856 | } |
| 857 | } |
| 858 | |
| 859 | ////////////////////////////////////////////////////////////////////////// |
| 860 | |