forked from OSchip/llvm-project
lldbutil: Forward ASan launch info to test inferiors
This allows an unsanitized test process which loads a sanitized DSO (the motivating example is a Swift runtime dylib) to launch on Darwin. rdar://57290132 Differential Revision: https://reviews.llvm.org/D71379
This commit is contained in:
parent
c5adcdc5c8
commit
4c00dbf22d
|
@ -19,6 +19,7 @@ import six
|
|||
|
||||
# LLDB modules
|
||||
import lldb
|
||||
from . import lldbtest_config
|
||||
|
||||
|
||||
# ===================================================
|
||||
|
@ -758,6 +759,12 @@ def run_to_breakpoint_make_target(test, exe_name = "a.out", in_cwd = True):
|
|||
# Create the target
|
||||
target = test.dbg.CreateTarget(exe)
|
||||
test.assertTrue(target, "Target: %s is not valid."%(exe_name))
|
||||
|
||||
# Set environment variables for the inferior.
|
||||
if lldbtest_config.inferior_env:
|
||||
test.runCmd('settings set target.env-vars {}'.format(
|
||||
lldbtest_config.inferior_env))
|
||||
|
||||
return target
|
||||
|
||||
def run_to_breakpoint_do_run(test, target, bkpt, launch_info = None,
|
||||
|
@ -765,7 +772,7 @@ def run_to_breakpoint_do_run(test, target, bkpt, launch_info = None,
|
|||
|
||||
# Launch the process, and do not stop at the entry point.
|
||||
if not launch_info:
|
||||
launch_info = lldb.SBLaunchInfo(None)
|
||||
launch_info = target.GetLaunchInfo()
|
||||
launch_info.SetWorkingDirectory(test.get_process_working_directory())
|
||||
|
||||
if extra_images and lldb.remote_platform:
|
||||
|
|
|
@ -87,6 +87,12 @@ dotest_cmd.extend(config.dotest_args_str.split(';'))
|
|||
if config.llvm_libs_dir:
|
||||
dotest_cmd += ['--env', 'LLVM_LIBS_DIR=' + config.llvm_libs_dir]
|
||||
|
||||
# Forward ASan-specific environment variables to tests, as a test may load an
|
||||
# ASan-ified dylib.
|
||||
for env_var in ('ASAN_OPTIONS', 'DYLD_INSERT_LIBRARIES'):
|
||||
if env_var in config.environment:
|
||||
dotest_cmd += ['--inferior-env', env_var + '=' + config.environment[env_var]]
|
||||
|
||||
if config.lldb_build_directory:
|
||||
dotest_cmd += ['--build-dir', config.lldb_build_directory]
|
||||
|
||||
|
|
Loading…
Reference in New Issue