diff options
| author | Med Ismail Bennani <medismail.bennani@gmail.com> | 2022-05-11 19:33:37 -0700 |
|---|---|---|
| committer | Med Ismail Bennani <medismail.bennani@gmail.com> | 2022-05-12 16:54:22 -0700 |
| commit | a6926d576131c9ad849fef6f1d43134caab5025e (patch) | |
| tree | a7993acee9a874480a9e69743ace6005583cad31 /lldb/test/API/python_api/compile_unit/TestCompileUnitAPI.py | |
| parent | 6cd9633c1da5d2867306217af59bcc4b589bab02 (diff) | |
[lldb/API] Add SBCompileUnit::GetIndexForLineEntry method to SB API
This patch adds a new `GetIndexForLineEntry` method to the `SBCompileUnit`
class. As the name suggests, given an `SBLineEntry` object, this will
return the line entry index within a specific compile unit.
This method can take a `exact` boolean that will make sure that the
provided line entry matches perfectly another line entry in the compile unit.
rdar://47450887
Differention Revision: https://reviews.llvm.org/D125437
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Diffstat (limited to 'lldb/test/API/python_api/compile_unit/TestCompileUnitAPI.py')
| -rw-r--r-- | lldb/test/API/python_api/compile_unit/TestCompileUnitAPI.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/lldb/test/API/python_api/compile_unit/TestCompileUnitAPI.py b/lldb/test/API/python_api/compile_unit/TestCompileUnitAPI.py new file mode 100644 index 000000000000..2c4ebf7982d9 --- /dev/null +++ b/lldb/test/API/python_api/compile_unit/TestCompileUnitAPI.py @@ -0,0 +1,44 @@ +""" +Test SBCompileUnit APIs. +""" + +import lldb +from lldbsuite.test.decorators import * +from lldbsuite.test.lldbtest import * +from lldbsuite.test import lldbutil + + +class CompileUnitAPITestCase(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + def setUp(self): + TestBase.setUp(self) + + def test(self): + """Exercise some SBCompileUnit APIs.""" + self.build() + + (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, 'break here', lldb.SBFileSpec('main.c')) + self.assertTrue(target, VALID_TARGET) + self.assertTrue(process, PROCESS_IS_VALID) + self.assertTrue(bkpt and bkpt.GetNumLocations() == 1, + VALID_BREAKPOINT) + + self.assertTrue( + thread.IsValid(), + "There should be a thread stopped due to breakpoint condition") + frame0 = thread.GetFrameAtIndex(0) + line_entry = frame0.GetLineEntry() + + sc_list = target.FindCompileUnits(line_entry.GetFileSpec()) + self.assertGreater(sc_list.GetSize(), 0) + + main_cu = sc_list.compile_units[0] + self.assertTrue(main_cu.IsValid(), "Main executable CU is not valid") + + self.assertEqual(main_cu.GetIndexForLineEntry(line_entry, True), + main_cu.FindLineEntryIndex(0, line_entry.GetLine(), + line_entry.GetFileSpec(), True)) + + |
