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:
Vedant Kumar 2019-12-11 16:19:08 -08:00
parent c5adcdc5c8
commit 4c00dbf22d
2 changed files with 14 additions and 1 deletions

View File

@ -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:

View File

@ -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]