[Lldb-commits] [lldb] [lldb] Allow env override for LLDB_ARGDUMPER_PATH (PR #91688)
https://github.com/JDevlieghere commented: Thanks! https://github.com/llvm/llvm-project/pull/91688 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] Allow env override for LLDB_ARGDUMPER_PATH (PR #91688)
https://github.com/keith closed https://github.com/llvm/llvm-project/pull/91688 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] Allow env override for LLDB_ARGDUMPER_PATH (PR #91688)
https://github.com/walter-erquinigo approved this pull request. lgtm https://github.com/llvm/llvm-project/pull/91688 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] Allow env override for LLDB_ARGDUMPER_PATH (PR #91688)
llvmbot wrote: @llvm/pr-subscribers-lldb Author: Keith Smiley (keith) Changes This mirrors the LLDB_DEBUGSERVER_PATH environment variable and allows you to have lldb-argdumper in a non-standard location and still use it at runtime. --- Full diff: https://github.com/llvm/llvm-project/pull/91688.diff 1 Files Affected: - (modified) lldb/source/Host/macosx/objcxx/Host.mm (+24-11) ``diff diff --git a/lldb/source/Host/macosx/objcxx/Host.mm b/lldb/source/Host/macosx/objcxx/Host.mm index 4fba5550ba10a..e6f1c0ea3d295 100644 --- a/lldb/source/Host/macosx/objcxx/Host.mm +++ b/lldb/source/Host/macosx/objcxx/Host.mm @@ -1387,18 +1387,31 @@ static bool ShouldLaunchUsingXPC(ProcessLaunchInfo _info) { Status Host::ShellExpandArguments(ProcessLaunchInfo _info) { Status error; if (launch_info.GetFlags().Test(eLaunchFlagShellExpandArguments)) { -FileSpec expand_tool_spec = HostInfo::GetSupportExeDir(); -if (!expand_tool_spec) { - error.SetErrorString( - "could not get support executable directory for lldb-argdumper tool"); - return error; +FileSpec expand_tool_spec; +Environment host_env = Host::GetEnvironment(); +std::string env_argdumper_path = host_env.lookup("LLDB_ARGDUMPER_PATH"); +if (!env_argdumper_path.empty()) { + expand_tool_spec.SetFile(env_argdumper_path, FileSpec::Style::native); + Log *log(GetLog(LLDBLog::Host | LLDBLog::Process)); + LLDB_LOGF(log, +"lldb-argdumper exe path set from environment variable: %s", +env_argdumper_path.c_str()); } -expand_tool_spec.AppendPathComponent("lldb-argdumper"); -if (!FileSystem::Instance().Exists(expand_tool_spec)) { - error.SetErrorStringWithFormat( - "could not find the lldb-argdumper tool: %s", - expand_tool_spec.GetPath().c_str()); - return error; +bool argdumper_exists = FileSystem::Instance().Exists(env_argdumper_path); +if (!argdumper_exists) { + expand_tool_spec = HostInfo::GetSupportExeDir(); + if (!expand_tool_spec) { +error.SetErrorString("could not get support executable directory for " + "lldb-argdumper tool"); +return error; + } + expand_tool_spec.AppendPathComponent("lldb-argdumper"); + if (!FileSystem::Instance().Exists(expand_tool_spec)) { +error.SetErrorStringWithFormat( +"could not find the lldb-argdumper tool: %s", +expand_tool_spec.GetPath().c_str()); +return error; + } } StreamString expand_tool_spec_stream; `` https://github.com/llvm/llvm-project/pull/91688 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] Allow env override for LLDB_ARGDUMPER_PATH (PR #91688)
https://github.com/keith created https://github.com/llvm/llvm-project/pull/91688 This mirrors the LLDB_DEBUGSERVER_PATH environment variable and allows you to have lldb-argdumper in a non-standard location and still use it at runtime. >From 98ddf4ed99a10c46a43d9a750bd826623a8c7e6f Mon Sep 17 00:00:00 2001 From: Keith Smiley Date: Thu, 9 May 2024 18:10:36 -0700 Subject: [PATCH] [lldb] Allow env override for LLDB_ARGDUMPER_PATH This mirrors the LLDB_DEBUGSERVER_PATH environment variable and allows you to have lldb-argdumper in a non-standard location and still use it at runtime. --- lldb/source/Host/macosx/objcxx/Host.mm | 35 ++ 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/lldb/source/Host/macosx/objcxx/Host.mm b/lldb/source/Host/macosx/objcxx/Host.mm index 4fba5550ba10a..e6f1c0ea3d295 100644 --- a/lldb/source/Host/macosx/objcxx/Host.mm +++ b/lldb/source/Host/macosx/objcxx/Host.mm @@ -1387,18 +1387,31 @@ static bool ShouldLaunchUsingXPC(ProcessLaunchInfo _info) { Status Host::ShellExpandArguments(ProcessLaunchInfo _info) { Status error; if (launch_info.GetFlags().Test(eLaunchFlagShellExpandArguments)) { -FileSpec expand_tool_spec = HostInfo::GetSupportExeDir(); -if (!expand_tool_spec) { - error.SetErrorString( - "could not get support executable directory for lldb-argdumper tool"); - return error; +FileSpec expand_tool_spec; +Environment host_env = Host::GetEnvironment(); +std::string env_argdumper_path = host_env.lookup("LLDB_ARGDUMPER_PATH"); +if (!env_argdumper_path.empty()) { + expand_tool_spec.SetFile(env_argdumper_path, FileSpec::Style::native); + Log *log(GetLog(LLDBLog::Host | LLDBLog::Process)); + LLDB_LOGF(log, +"lldb-argdumper exe path set from environment variable: %s", +env_argdumper_path.c_str()); } -expand_tool_spec.AppendPathComponent("lldb-argdumper"); -if (!FileSystem::Instance().Exists(expand_tool_spec)) { - error.SetErrorStringWithFormat( - "could not find the lldb-argdumper tool: %s", - expand_tool_spec.GetPath().c_str()); - return error; +bool argdumper_exists = FileSystem::Instance().Exists(env_argdumper_path); +if (!argdumper_exists) { + expand_tool_spec = HostInfo::GetSupportExeDir(); + if (!expand_tool_spec) { +error.SetErrorString("could not get support executable directory for " + "lldb-argdumper tool"); +return error; + } + expand_tool_spec.AppendPathComponent("lldb-argdumper"); + if (!FileSystem::Instance().Exists(expand_tool_spec)) { +error.SetErrorStringWithFormat( +"could not find the lldb-argdumper tool: %s", +expand_tool_spec.GetPath().c_str()); +return error; + } } StreamString expand_tool_spec_stream; ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits