"""
Test source text regex breakpoint hydrates module debug info
in symbol on-demand mode.
"""
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
class TestSourceTextRegexBreakpoint(TestBase):
@skipIfWindows
def test_with_run_command(self):
self.build()
# Load symbols on-demand
self.runCmd("settings set symbols.load-on-demand true")
self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_source_regexp(self, "Set break point at this line.")
self.runCmd("run", RUN_SUCCEEDED)
# The stop reason of the thread should be breakpoint.
self.expect(
"thread list",
STOPPED_DUE_TO_BREAKPOINT,
substrs=["stopped", "stop reason = breakpoint"],
)
frame = self.frame()
self.assertTrue(frame.IsValid())
self.assertEqual(frame.GetLineEntry().GetFileSpec().GetFilename(), "main.cpp")
self.assertEqual(frame.GetLineEntry().GetLine(), 4)