Index: test/tools/lldb-mi/breakpoint/TestMiBreak.py =================================================================== --- test/tools/lldb-mi/breakpoint/TestMiBreak.py +++ test/tools/lldb-mi/breakpoint/TestMiBreak.py @@ -133,8 +133,26 @@ # Test that non-pending BP was set correctly self.runCmd("-exec-continue") self.expect("\^running") - self.expect("\*stopped,reason=\"breakpoint-hit\"") + self.expect("\*stopped,reason=\"breakpoint-hit\".*bkptno=\"2\"") + # Test that we can set a BP using the file:func syntax + self.runCmd("-break-insert main.cpp:main") + self.expect("\^done,bkpt={number=\"4\"") + self.runCmd("-break-insert main.cpp:ns::foo1") + self.expect("\^done,bkpt={number=\"5\"") + #FIXME: quotes on filenames aren't handled correctly in lldb-mi. + #self.runCmd("-break-insert \"main.cpp\":main") + #self.expect("\^done,bkpt={number=\"6\"") + #FIXME: this test is disabled due to lldb bug llvm.org/pr24271. + # Test that we can set a BP using the global namespace token + #self.runCmd("-break-insert \"main.cpp:::main\"") + #self.expect("\^done,bkpt={number=\"7\"") + + # We should hit BP #5 on 'main.cpp:ns::foo1' + self.runCmd("-exec-continue") + self.expect("\^running") + self.expect("\*stopped,reason=\"breakpoint-hit\".*bkptno=\"5\"") + @lldbmi_test @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races Index: tools/lldb-mi/MICmdCmdBreak.cpp =================================================================== --- tools/lldb-mi/MICmdCmdBreak.cpp +++ tools/lldb-mi/MICmdCmdBreak.cpp @@ -239,8 +239,13 @@ m_brkPt = sbTarget.BreakpointCreateByAddress(nAddress); break; case eBreakPoint_ByFileFn: - m_brkPt = sbTarget.BreakpointCreateByName(strFileFn.c_str(), fileName.c_str()); + { + lldb::SBFileSpecList module; // search in all modules + lldb::SBFileSpecList compUnit; + compUnit.Append (lldb::SBFileSpec(fileName.c_str())); + m_brkPt = sbTarget.BreakpointCreateByName(strFileFn.c_str(), module, compUnit); break; + } case eBreakPoint_ByFileLine: m_brkPt = sbTarget.BreakpointCreateByLocation(fileName.c_str(), nFileLine); break;