Moved PlatformDarwin::GetEnvironment() to PlatformPOSIX to fix Linux/llgs issue.

See http://reviews.llvm.org/D5486 for more details.

I was tracking a problem where llgs on linux would not pick up any environment variables. On OSX there is a virtual function PlatformDarwin::GetEnvironment() which correctly sets up the list of environment variables. On linux llgs it defaults to a base class default implementation which clears the list.

I moved the OSX implementation down to PlatformPOSIX. This fixes my problem on linux still works properly on OSX.

Change by Shawn Best.
Slight tweak to convert 'virtual' to 'override' in PlatformDarwin.h virtual method override by Todd.

Tested:
Ubuntu 14.04 x86_64, cmake/ninja build + tests.
MacOSX 10.9.5 x86_64, Xcode 6.1 Beta build + tests.

llvm-svn: 218424
This commit is contained in:
Todd Fiala 2014-09-24 23:10:30 +00:00
parent bf246f5a9d
commit e15fcaa2e5
4 changed files with 15 additions and 14 deletions

View File

@ -1212,17 +1212,6 @@ PlatformDarwin::SetThreadCreationBreakpoint (Target &target)
return bp_sp;
}
size_t
PlatformDarwin::GetEnvironment (StringList &env)
{
if (IsRemote())
{
if (m_remote_platform_sp)
return m_remote_platform_sp->GetEnvironment(env);
return 0;
}
return Host::GetEnvironment(env);
}
int32_t
PlatformDarwin::GetResumeCountForLaunchInfo (ProcessLaunchInfo &launch_info)

View File

@ -78,9 +78,6 @@ public:
virtual bool
ModuleIsExcludedForNonModuleSpecificSearches (lldb_private::Target &target, const lldb::ModuleSP &module_sp);
virtual size_t
GetEnvironment (lldb_private::StringList &environment);
bool
ARMGetSupportedArchitectureAtIndex (uint32_t idx, lldb_private::ArchSpec &arch);

View File

@ -634,6 +634,18 @@ PlatformPOSIX::GetRemoteOSBuildString (std::string &s)
return false;
}
size_t
PlatformPOSIX::GetEnvironment (StringList &env)
{
if (IsRemote())
{
if (m_remote_platform_sp)
return m_remote_platform_sp->GetEnvironment(env);
return 0;
}
return Host::GetEnvironment(env);
}
bool
PlatformPOSIX::GetRemoteOSKernelDescription (std::string &s)
{

View File

@ -101,6 +101,9 @@ public:
lldb_private::ArchSpec
GetRemoteSystemArchitecture () override;
size_t
GetEnvironment (lldb_private::StringList &environment) override;
bool
IsConnected () const override;