Index: tools/lldb-mi/MICmdCmdData.cpp =================================================================== --- tools/lldb-mi/MICmdCmdData.cpp +++ tools/lldb-mi/MICmdCmdData.cpp @@ -1754,8 +1754,15 @@ const size_t nFileStartPos = rLine.find_first_not_of(' ', nEndAddressEndPos + 2); const size_t nFileOrLineEndPos = rLine.rfind(':'); const size_t nFileOrLineStartPos = rLine.rfind(':', nFileOrLineEndPos - 1); - const size_t nFileEndPos = nFileStartPos < nFileOrLineStartPos ? nFileOrLineStartPos : nFileOrLineEndPos; - const size_t nFileLen = nFileEndPos - nFileStartPos; + size_t nFileEndPos = nFileStartPos < nFileOrLineStartPos ? nFileOrLineStartPos : nFileOrLineEndPos; + size_t nFileLen = nFileEndPos - nFileStartPos; + if ((nFileLen == 1) && ((rLine.at(nFileEndPos + 1) == '\\') || (rLine.at(nFileEndPos + 1) == '/'))) + { + // The filename contains a Windows drive letter; recalculate + // nFileEndPos and nFileLen to account for it. + nFileEndPos = nFileOrLineEndPos; + nFileLen = nFileEndPos - nFileStartPos; + } const CMIUtilString strFile(rLine.substr(nFileStartPos, nFileLen).c_str()); const CMICmnMIValueConst miValueConst3(strFile); const CMICmnMIValueResult miValueResult3("file", miValueConst3);