Fix and improve #187145 for following issues: * Fix unhandled error. * Align the log type with the file where it contains. * The added test doesn't work on windows host for remote debugging, add decorator to skip when host and target do not match.
45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
# TestCompilationPrefixMap.py
|
|
#
|
|
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
# See https://llvm.org/LICENSE.txt for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
#
|
|
"""
|
|
Test that LLDB auto-loads compilation-prefix-map.json to resolve remapped
|
|
source paths without requiring manual `settings set target.source-map`.
|
|
"""
|
|
import os
|
|
|
|
import lldb
|
|
from lldbsuite.test.decorators import *
|
|
from lldbsuite.test.lldbtest import *
|
|
import lldbsuite.test.lldbutil as lldbutil
|
|
|
|
|
|
class TestCompilationPrefixMap(TestBase):
|
|
@skipIfWindows
|
|
@skipIfHostIncompatibleWithTarget
|
|
def test_compilation_prefix_map(self):
|
|
"""
|
|
Build a binary with -fdebug-prefix-map remapping the source directory
|
|
to /fake/srcdir, place compilation-prefix-map.json next to the binary
|
|
mapping /fake/srcdir back to the real source directory, and verify that
|
|
LLDB resolves a source-line breakpoint without any manual source-map
|
|
configuration.
|
|
"""
|
|
self.build()
|
|
|
|
src_dir = self.getSourceDir()
|
|
|
|
log = self.getBuildArtifact("module.log")
|
|
self.runCmd('log enable lldb module -f "%s"' % log)
|
|
|
|
source_spec = lldb.SBFileSpec(os.path.join(src_dir, "main.c"))
|
|
lldbutil.run_to_source_breakpoint(self, "return x", source_spec)
|
|
|
|
self.filecheck_log(log, __file__)
|
|
|
|
|
|
# CHECK: found compilation-prefix-map.json
|
|
# CHECK: applying prefix map: '/fake/srcdir'
|