brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · e56ecfc Raw
57 lines · python
1"""Test that corefiles with LC_NOTE "addrable bits" load command, creating and reading."""2 3 4import os5import re6import subprocess7 8import lldb9from lldbsuite.test.decorators import *10from lldbsuite.test.lldbtest import *11from lldbsuite.test import lldbutil12 13 14class TestAddrableBitsCorefile(TestBase):15    NO_DEBUG_INFO_TESTCASE = True16 17    def initial_setup(self):18        self.build()19        self.exe = self.getBuildArtifact("a.out")20        self.corefile = self.getBuildArtifact("corefile")21 22    @skipIf(archs=no_match(["arm64e"]))23    @skipUnlessDarwin24    def test_lc_note_addrable_bits(self):25        self.initial_setup()26 27        self.target = self.dbg.CreateTarget(self.exe)28        err = lldb.SBError()29        (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(30            self, "break here", lldb.SBFileSpec("main.c")31        )32        self.assertTrue(process.IsValid())33 34        found_main = False35        for f in thread.frames:36            if f.GetFunctionName() == "main":37                found_main = True38        self.assertTrue(found_main)39 40        cmdinterp = self.dbg.GetCommandInterpreter()41        res = lldb.SBCommandReturnObject()42        cmdinterp.HandleCommand("process save-core %s" % self.corefile, res)43        self.assertTrue(res.Succeeded(), True)44        process.Kill()45        self.dbg.DeleteTarget(target)46 47        target = self.dbg.CreateTarget("")48        process = target.LoadCore(self.corefile)49        self.assertTrue(process.IsValid(), True)50        thread = process.GetSelectedThread()51 52        found_main = False53        for f in thread.frames:54            if f.GetFunctionName() == "main":55                found_main = True56        self.assertTrue(found_main)57