60 lines
2.1 KiB
Python
60 lines
2.1 KiB
Python
|
"""
|
||
|
Test some lldb command abbreviations.
|
||
|
"""
|
||
|
|
||
|
|
||
|
import lldb
|
||
|
from lldbsuite.test.decorators import *
|
||
|
from lldbsuite.test.lldbtest import *
|
||
|
from lldbsuite.test import lldbutil
|
||
|
|
||
|
|
||
|
class FatArchiveTestCase(TestBase):
|
||
|
NO_DEBUG_INFO_TESTCASE = True
|
||
|
|
||
|
@skipUnlessDarwin
|
||
|
def test_breakpoint_resolution_dwarf(self):
|
||
|
if self.getArchitecture() == "x86_64":
|
||
|
self.build()
|
||
|
self.main()
|
||
|
else:
|
||
|
self.skipTest(
|
||
|
"This test requires x86_64 as the architecture for the inferior"
|
||
|
)
|
||
|
|
||
|
def main(self):
|
||
|
"""This test compiles a quick example by making a fat file (universal) full of
|
||
|
skinny .o files and makes sure we can use them to resolve breakpoints when doing
|
||
|
DWARF in .o file debugging. The only thing this test needs to do is to compile and
|
||
|
set a breakpoint in the target and verify any breakpoint locations have valid debug
|
||
|
info for the function, and source file and line."""
|
||
|
exe = self.getBuildArtifact("a.out")
|
||
|
|
||
|
# Create the target
|
||
|
target = self.dbg.CreateTarget(exe)
|
||
|
|
||
|
# Create a breakpoint by name
|
||
|
breakpoint = target.BreakpointCreateByName("foo", exe)
|
||
|
self.assertTrue(breakpoint, VALID_BREAKPOINT)
|
||
|
|
||
|
# Make sure the breakpoint resolves to a function, file and line
|
||
|
for bp_loc in breakpoint:
|
||
|
# Get a section offset address (lldb.SBAddress) from the breakpoint
|
||
|
# location
|
||
|
bp_loc_addr = bp_loc.GetAddress()
|
||
|
line_entry = bp_loc_addr.GetLineEntry()
|
||
|
function = bp_loc_addr.GetFunction()
|
||
|
self.assertTrue(
|
||
|
function.IsValid(),
|
||
|
"Verify breakpoint in fat BSD archive has valid function debug info",
|
||
|
)
|
||
|
self.assertTrue(
|
||
|
line_entry.GetFileSpec(),
|
||
|
"Verify breakpoint in fat BSD archive has source file information",
|
||
|
)
|
||
|
self.assertNotEqual(
|
||
|
line_entry.GetLine(),
|
||
|
0,
|
||
|
"Verify breakpoint in fat BSD archive has source line information",
|
||
|
)
|