[Lldb-commits] [lldb] r216230 - Move the rest of the HostInfo functions over.
Jason Molenda
jmolenda at apple.com
Thu Aug 21 16:14:32 PDT 2014
Hm, I'm seeing two problems trying to build the current sources on Mac OS X. Did you mean to have a GetFeectiveUserID method in Host or HostInfo? I needed to do
Index: source/Host/macosx/Host.mm
===================================================================
--- source/Host/macosx/Host.mm (revision 216236)
+++ source/Host/macosx/Host.mm (working copy)
@@ -1255,7 +1255,7 @@
const char *xpc_service = nil;
bool send_auth = false;
AuthorizationExternalForm extForm;
- if ((requested_uid == UINT32_MAX) || (requested_uid == Host::GetEffectiveUserID()))
+ if ((requested_uid == UINT32_MAX) || (requested_uid == HostInfoMacOSX::GetEffectiveUserID()))
{
xpc_service = "com.apple.lldb.launcherXPCService";
}
@@ -1392,7 +1392,7 @@
#if !NO_XPC_SERVICES
bool launchingAsRoot = launch_info.GetUserID() == 0;
- bool currentUserIsRoot = Host::GetEffectiveUserID() == 0;
+ bool currentUserIsRoot = HostInfoMacOSX::GetEffectiveUserID() == 0;
if (launchingAsRoot && !currentUserIsRoot)
{
to get it to compile.
A second problem is that I can't attach/launch native processes on Mac OS X, I get
error: process launch failed: unable to locate debugserver
Previously, it looks like Host::GetLLDBPath would return a FileSpec with a directory like ".../lldb/build/Debug/LLDB.framework/Resources" and no filename. Then in GDBRemoteCommunication.cpp it sets the filename component -
// The debugserver binary is in the LLDB.framework/Resources
// directory.
if (HostInfo::GetLLDBPath(ePathTypeSupportExecutableDir, debugserver_file_spec))
{
debugserver_file_spec.GetFilename().SetCString(DEBUGSERVER_BASENAME);
But right now the FileSpec returned by HostInfo::GetLLDBPath has a directory of ".../lldb/build/Debug/LLDB.framework/" and a filename of "Resources" - which gets overwritten by that SetCString() method call.
I'm sure the fix is easy but I wanted to mention it on the list in case other people are also seeing this.
> On Aug 21, 2014, at 2:49 PM, Zachary Turner <zturner at google.com> wrote:
>
> Author: zturner
> Date: Thu Aug 21 16:49:24 2014
> New Revision: 216230
>
> URL: http://llvm.org/viewvc/llvm-project?rev=216230&view=rev
> Log:
> Move the rest of the HostInfo functions over.
>
> This should bring HostInfo up to 99% completion. The remainder
> of code in Host will be split into instantiatable classes
> representing host processes, threads, dynamic libraries, and
> process launching strategies.
>
> Modified:
> lldb/trunk/include/lldb/Host/Host.h
> lldb/trunk/include/lldb/Host/freebsd/HostInfoFreeBSD.h
> lldb/trunk/include/lldb/Host/linux/HostInfoLinux.h
> lldb/trunk/include/lldb/Host/macosx/HostInfoMacOSX.h
> lldb/trunk/include/lldb/Host/posix/HostInfoPosix.h
> lldb/trunk/include/lldb/Host/windows/HostInfoWindows.h
> lldb/trunk/source/API/SBHostOS.cpp
> lldb/trunk/source/Host/common/Host.cpp
> lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp
> lldb/trunk/source/Host/linux/HostInfoLinux.cpp
> lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm
> lldb/trunk/source/Host/posix/HostInfoPosix.cpp
> lldb/trunk/source/Host/windows/Host.cpp
> lldb/trunk/source/Host/windows/HostInfoWindows.cpp
> lldb/trunk/source/Interpreter/CommandInterpreter.cpp
>
> Modified: lldb/trunk/include/lldb/Host/Host.h
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/Host.h?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/include/lldb/Host/Host.h (original)
> +++ lldb/trunk/include/lldb/Host/Host.h Thu Aug 21 16:49:24 2014
> @@ -91,25 +91,6 @@ public:
> lldb::pid_t pid,
> bool monitor_signals);
>
> - static const char *
> - GetUserName (uint32_t uid, std::string &user_name);
> -
> - static const char *
> - GetGroupName (uint32_t gid, std::string &group_name);
> -
> - static uint32_t
> - GetUserID ();
> -
> - static uint32_t
> - GetGroupID ();
> -
> - static uint32_t
> - GetEffectiveUserID ();
> -
> - static uint32_t
> - GetEffectiveGroupID ();
> -
> -
> enum SystemLogType
> {
> eSystemLogWarning,
> @@ -261,27 +242,6 @@ public:
> SetShortThreadName (lldb::pid_t pid, lldb::tid_t tid, const char *name, size_t len);
>
> //------------------------------------------------------------------
> - /// Gets the FileSpec of the user profile directory. On Posix-platforms
> - /// this is ~, and on windows this is generally something like
> - /// C:\Users\Alice.
> - ///
> - /// @return
> - /// \b A file spec with the path to the user's home directory.
> - //------------------------------------------------------------------
> - static FileSpec
> - GetUserProfileFileSpec ();
> -
> - //------------------------------------------------------------------
> - /// Gets the FileSpec of the current process (the process that
> - /// that is running the LLDB code).
> - ///
> - /// @return
> - /// \b A file spec with the program name.
> - //------------------------------------------------------------------
> - static FileSpec
> - GetProgramFileSpec ();
> -
> - //------------------------------------------------------------------
> /// Given an address in the current process (the process that
> /// is running the LLDB code), return the name of the module that
> /// it comes from. This can be useful when you need to know the
> @@ -298,8 +258,6 @@ public:
> //------------------------------------------------------------------
> static FileSpec
> GetModuleFileSpecForHostAddress (const void *host_addr);
> -
> -
>
> //------------------------------------------------------------------
> /// If you have an executable that is in a bundle and want to get
>
> Modified: lldb/trunk/include/lldb/Host/freebsd/HostInfoFreeBSD.h
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/freebsd/HostInfoFreeBSD.h?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/include/lldb/Host/freebsd/HostInfoFreeBSD.h (original)
> +++ lldb/trunk/include/lldb/Host/freebsd/HostInfoFreeBSD.h Thu Aug 21 16:49:24 2014
> @@ -10,6 +10,7 @@
> #ifndef lldb_Host_freebsd_HostInfoFreeBSD_h_
> #define lldb_Host_freebsd_HostInfoFreeBSD_h_
>
> +#include "lldb/Host/FileSpec.h"
> #include "lldb/Host/posix/HostInfoPosix.h"
>
> namespace lldb_private
> @@ -21,6 +22,7 @@ class HostInfoFreeBSD : public HostInfoP
> static bool GetOSVersion(uint32_t &major, uint32_t &minor, uint32_t &update);
> static bool GetOSBuildString(std::string &s);
> static bool GetOSKernelDescription(std::string &s);
> + static FileSpec GetProgramFileSpec();
> };
> }
>
>
> Modified: lldb/trunk/include/lldb/Host/linux/HostInfoLinux.h
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/linux/HostInfoLinux.h?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/include/lldb/Host/linux/HostInfoLinux.h (original)
> +++ lldb/trunk/include/lldb/Host/linux/HostInfoLinux.h Thu Aug 21 16:49:24 2014
> @@ -10,7 +10,9 @@
> #ifndef lldb_Host_linux_HostInfoLinux_h_
> #define lldb_Host_linux_HostInfoLinux_h_
>
> +#include "lldb/Host/FileSpec.h"
> #include "lldb/Host/posix/HostInfoPosix.h"
> +
> #include "llvm/ADT/StringRef.h"
>
> #include <string>
> @@ -32,6 +34,7 @@ class HostInfoLinux : public HostInfoPos
>
> static bool GetOSVersion(uint32_t &major, uint32_t &minor, uint32_t &update);
> static llvm::StringRef GetDistributionId();
> + static FileSpec GetProgramFileSpec();
>
> protected:
> static bool ComputeSystemPluginsDirectory(FileSpec &file_spec);
>
> Modified: lldb/trunk/include/lldb/Host/macosx/HostInfoMacOSX.h
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/macosx/HostInfoMacOSX.h?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/include/lldb/Host/macosx/HostInfoMacOSX.h (original)
> +++ lldb/trunk/include/lldb/Host/macosx/HostInfoMacOSX.h Thu Aug 21 16:49:24 2014
> @@ -10,6 +10,7 @@
> #ifndef lldb_Host_macosx_HostInfoMacOSX_h_
> #define lldb_Host_macosx_HostInfoMacOSX_h_
>
> +#include "lldb/Host/FileSpec.h"
> #include "lldb/Host/posix/HostInfoPosix.h"
>
> namespace lldb_private
> @@ -30,6 +31,7 @@ class HostInfoMacOSX : public HostInfoPo
> static bool GetOSVersion(uint32_t &major, uint32_t &minor, uint32_t &update);
> static bool GetOSBuildString(std::string &s);
> static bool GetOSKernelDescription(std::string &s);
> + static FileSpec GetProgramFileSpec();
>
> protected:
> static bool ComputeSupportExeDirectory(FileSpec &file_spec);
>
> Modified: lldb/trunk/include/lldb/Host/posix/HostInfoPosix.h
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/posix/HostInfoPosix.h?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/include/lldb/Host/posix/HostInfoPosix.h (original)
> +++ lldb/trunk/include/lldb/Host/posix/HostInfoPosix.h Thu Aug 21 16:49:24 2014
> @@ -25,6 +25,11 @@ class HostInfoPosix : public HostInfoBas
> static const char *LookupUserName(uint32_t uid, std::string &user_name);
> static const char *LookupGroupName(uint32_t gid, std::string &group_name);
>
> + static uint32_t GetUserID();
> + static uint32_t GetGroupID();
> + static uint32_t GetEffectiveUserID();
> + static uint32_t GetEffectiveGroupID();
> +
> protected:
> static bool ComputeSupportExeDirectory(FileSpec &file_spec);
> static bool ComputeHeaderDirectory(FileSpec &file_spec);
>
> Modified: lldb/trunk/include/lldb/Host/windows/HostInfoWindows.h
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/windows/HostInfoWindows.h?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/include/lldb/Host/windows/HostInfoWindows.h (original)
> +++ lldb/trunk/include/lldb/Host/windows/HostInfoWindows.h Thu Aug 21 16:49:24 2014
> @@ -11,6 +11,7 @@
> #define lldb_Host_windows_HostInfoWindows_h_
>
> #include "lldb/Host/HostInfoBase.h"
> +#include "lldb/Host/FileSpec.h"
>
> namespace lldb_private
> {
> @@ -31,9 +32,13 @@ class HostInfoWindows : public HostInfoB
> static bool GetOSBuildString(std::string &s);
> static bool GetOSKernelDescription(std::string &s);
> static bool GetHostname(std::string &s);
> + static FileSpec GetProgramFileSpec();
>
> protected:
> static bool ComputePythonDirectory(FileSpec &file_spec);
> +
> + private:
> + static FileSpec m_program_filespec;
> };
> }
>
>
> Modified: lldb/trunk/source/API/SBHostOS.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBHostOS.cpp?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/source/API/SBHostOS.cpp (original)
> +++ lldb/trunk/source/API/SBHostOS.cpp Thu Aug 21 16:49:24 2014
> @@ -23,7 +23,7 @@ SBFileSpec
> SBHostOS::GetProgramFileSpec ()
> {
> SBFileSpec sb_filespec;
> - sb_filespec.SetFileSpec (Host::GetProgramFileSpec ());
> + sb_filespec.SetFileSpec(HostInfo::GetProgramFileSpec());
> return sb_filespec;
> }
>
>
> Modified: lldb/trunk/source/Host/common/Host.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/Host.cpp?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/source/Host/common/Host.cpp (original)
> +++ lldb/trunk/source/Host/common/Host.cpp Thu Aug 21 16:49:24 2014
> @@ -646,68 +646,6 @@ Host::SetShortThreadName (lldb::pid_t pi
>
> #endif
>
> -FileSpec
> -Host::GetUserProfileFileSpec ()
> -{
> - static FileSpec g_profile_filespec;
> - if (!g_profile_filespec)
> - {
> - llvm::SmallString<64> path;
> - llvm::sys::path::home_directory(path);
> - return FileSpec(path.c_str(), false);
> - }
> - return g_profile_filespec;
> -}
> -
> -FileSpec
> -Host::GetProgramFileSpec ()
> -{
> - static FileSpec g_program_filespec;
> - if (!g_program_filespec)
> - {
> -#if defined (__APPLE__)
> - char program_fullpath[PATH_MAX];
> - // If DST is NULL, then return the number of bytes needed.
> - uint32_t len = sizeof(program_fullpath);
> - int err = _NSGetExecutablePath (program_fullpath, &len);
> - if (err == 0)
> - g_program_filespec.SetFile (program_fullpath, false);
> - else if (err == -1)
> - {
> - char *large_program_fullpath = (char *)::malloc (len + 1);
> -
> - err = _NSGetExecutablePath (large_program_fullpath, &len);
> - if (err == 0)
> - g_program_filespec.SetFile (large_program_fullpath, false);
> -
> - ::free (large_program_fullpath);
> - }
> -#elif defined (__linux__)
> - char exe_path[PATH_MAX];
> - ssize_t len = readlink("/proc/self/exe", exe_path, sizeof(exe_path) - 1);
> - if (len > 0) {
> - exe_path[len] = 0;
> - g_program_filespec.SetFile(exe_path, false);
> - }
> -#elif defined (__FreeBSD__) || defined (__FreeBSD_kernel__)
> - int exe_path_mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, getpid() };
> - size_t exe_path_size;
> - if (sysctl(exe_path_mib, 4, NULL, &exe_path_size, NULL, 0) == 0)
> - {
> - char *exe_path = new char[exe_path_size];
> - if (sysctl(exe_path_mib, 4, exe_path, &exe_path_size, NULL, 0) == 0)
> - g_program_filespec.SetFile(exe_path, false);
> - delete[] exe_path;
> - }
> -#elif defined(_WIN32)
> - std::vector<char> buffer(PATH_MAX);
> - ::GetModuleFileName(NULL, &buffer[0], buffer.size());
> - g_program_filespec.SetFile(&buffer[0], false);
> -#endif
> - }
> - return g_program_filespec;
> -}
> -
> #if !defined (__APPLE__) // see Host.mm
>
> bool
> @@ -864,34 +802,6 @@ Host::GetModuleFileSpecForHostAddress (c
> }
>
> #endif
> -
> -#ifndef _WIN32
> -
> -uint32_t
> -Host::GetUserID ()
> -{
> - return getuid();
> -}
> -
> -uint32_t
> -Host::GetGroupID ()
> -{
> - return getgid();
> -}
> -
> -uint32_t
> -Host::GetEffectiveUserID ()
> -{
> - return geteuid();
> -}
> -
> -uint32_t
> -Host::GetEffectiveGroupID ()
> -{
> - return getegid();
> -}
> -
> -#endif
>
> #if !defined(__linux__)
> bool
>
> Modified: lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp (original)
> +++ lldb/trunk/source/Host/freebsd/HostInfoFreeBSD.cpp Thu Aug 21 16:49:24 2014
> @@ -64,3 +64,22 @@ HostInfoFreeBSD::GetOSKernelDescription(
>
> return true;
> }
> +
> +FileSpec
> +HostInfoFreeBSD::GetProgramFileSpec()
> +{
> + static FileSpec g_program_filespec;
> + if (!g_program_filespec)
> + {
> + int exe_path_mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, getpid()};
> + size_t exe_path_size;
> + if (sysctl(exe_path_mib, 4, NULL, &exe_path_size, NULL, 0) == 0)
> + {
> + char *exe_path = new char[exe_path_size];
> + if (sysctl(exe_path_mib, 4, exe_path, &exe_path_size, NULL, 0) == 0)
> + g_program_filespec.SetFile(exe_path, false);
> + delete[] exe_path;
> + }
> + }
> + return g_program_filespec;
> +}
> \ No newline at end of file
>
> Modified: lldb/trunk/source/Host/linux/HostInfoLinux.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/linux/HostInfoLinux.cpp?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/source/Host/linux/HostInfoLinux.cpp (original)
> +++ lldb/trunk/source/Host/linux/HostInfoLinux.cpp Thu Aug 21 16:49:24 2014
> @@ -172,6 +172,25 @@ HostInfoLinux::GetDistributionId()
> return g_fields->m_distribution_id.c_str();
> }
>
> +FileSpec
> +HostInfoLinux::GetProgramFileSpec()
> +{
> + static FileSpec g_program_filespec;
> +
> + if (!g_program_filespec)
> + {
> + char exe_path[PATH_MAX];
> + ssize_t len = readlink("/proc/self/exe", exe_path, sizeof(exe_path) - 1);
> + if (len > 0)
> + {
> + exe_path[len] = 0;
> + g_program_filespec.SetFile(exe_path, false);
> + }
> + }
> +
> + return g_program_filespec;
> +}
> +
> bool
> HostInfoLinux::ComputeSystemPluginsDirectory(FileSpec &file_spec)
> {
>
> Modified: lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm (original)
> +++ lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm Thu Aug 21 16:49:24 2014
> @@ -27,6 +27,7 @@
> // Objective C/C++ includes
> #include <CoreFoundation/CoreFoundation.h>
> #include <Foundation/Foundation.h>
> +#include <mach-o/dyld.h>
> #include <objc/objc-auto.h>
>
> using namespace lldb_private;
> @@ -91,6 +92,32 @@ HostInfoMacOSX::GetOSVersion(uint32_t &m
> return false;
> }
>
> +FileSpec
> +HostInfoMacOSX::GetProgramFileSpec()
> +{
> + static FileSpec g_program_filespec;
> + if (!g_program_filespec)
> + {
> + char program_fullpath[PATH_MAX];
> + // If DST is NULL, then return the number of bytes needed.
> + uint32_t len = sizeof(program_fullpath);
> + int err = _NSGetExecutablePath(program_fullpath, &len);
> + if (err == 0)
> + g_program_filespec.SetFile(program_fullpath, false);
> + else if (err == -1)
> + {
> + char *large_program_fullpath = (char *)::malloc(len + 1);
> +
> + err = _NSGetExecutablePath(large_program_fullpath, &len);
> + if (err == 0)
> + g_program_filespec.SetFile(large_program_fullpath, false);
> +
> + ::free(large_program_fullpath);
> + }
> + }
> + return g_program_filespec;
> +}
> +
> bool
> HostInfoMacOSX::ComputeSupportExeDirectory(FileSpec &file_spec)
> {
>
> Modified: lldb/trunk/source/Host/posix/HostInfoPosix.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/posix/HostInfoPosix.cpp?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/source/Host/posix/HostInfoPosix.cpp (original)
> +++ lldb/trunk/source/Host/posix/HostInfoPosix.cpp Thu Aug 21 16:49:24 2014
> @@ -97,6 +97,30 @@ HostInfoPosix::LookupGroupName(uint32_t
> return NULL;
> }
>
> +uint32_t
> +HostInfoPosix::GetUserID()
> +{
> + return getuid();
> +}
> +
> +uint32_t
> +HostInfoPosix::GetGroupID()
> +{
> + return getgid();
> +}
> +
> +uint32_t
> +HostInfoPosix::GetEffectiveUserID()
> +{
> + return geteuid();
> +}
> +
> +uint32_t
> +HostInfoPosix::GetEffectiveGroupID()
> +{
> + return getegid();
> +}
> +
> bool
> HostInfoPosix::ComputeSupportExeDirectory(FileSpec &file_spec)
> {
>
> Modified: lldb/trunk/source/Host/windows/Host.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/windows/Host.cpp?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/source/Host/windows/Host.cpp (original)
> +++ lldb/trunk/source/Host/windows/Host.cpp Thu Aug 21 16:49:24 2014
> @@ -236,33 +236,6 @@ Host::DynamicLibraryGetSymbol(void *opaq
> }
>
> uint32_t
> -Host::GetUserID ()
> -{
> - llvm_unreachable("Windows does not support uid");
> -}
> -
> -uint32_t
> -Host::GetGroupID ()
> -{
> - llvm_unreachable("Windows does not support gid");
> - return 0;
> -}
> -
> -uint32_t
> -Host::GetEffectiveUserID ()
> -{
> - llvm_unreachable("Windows does not support euid");
> - return 0;
> -}
> -
> -uint32_t
> -Host::GetEffectiveGroupID ()
> -{
> - llvm_unreachable("Windows does not support egid");
> - return 0;
> -}
> -
> -uint32_t
> Host::FindProcesses (const ProcessInstanceInfoMatch &match_info, ProcessInstanceInfoList &process_infos)
> {
> process_infos.Clear();
>
> Modified: lldb/trunk/source/Host/windows/HostInfoWindows.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/windows/HostInfoWindows.cpp?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/source/Host/windows/HostInfoWindows.cpp (original)
> +++ lldb/trunk/source/Host/windows/HostInfoWindows.cpp Thu Aug 21 16:49:24 2014
> @@ -15,6 +15,8 @@
>
> using namespace lldb_private;
>
> +FileSpec HostInfoWindows::m_program_filespec;
> +
> size_t
> HostInfoWindows::GetPageSize()
> {
> @@ -79,6 +81,21 @@ HostInfoWindows::GetHostname(std::string
> return true;
> }
>
> +FileSpec
> +HostInfoWindows::GetProgramFileSpec()
> +{
> + static bool is_initialized = false;
> + if (!is_initialized)
> + {
> + is_initialized = true;
> +
> + std::vector<char> buffer(PATH_MAX);
> + ::GetModuleFileName(NULL, &buffer[0], buffer.size());
> + m_program_filespec.SetFile(&buffer[0], false);
> + }
> + return m_program_filespec;
> +}
> +
> bool
> HostInfoWindows::ComputePythonDirectory(FileSpec &file_spec)
> {
>
> Modified: lldb/trunk/source/Interpreter/CommandInterpreter.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/CommandInterpreter.cpp?rev=216230&r1=216229&r2=216230&view=diff
> ==============================================================================
> --- lldb/trunk/source/Interpreter/CommandInterpreter.cpp (original)
> +++ lldb/trunk/source/Interpreter/CommandInterpreter.cpp Thu Aug 21 16:49:24 2014
> @@ -51,6 +51,7 @@
>
> #include "lldb/Host/Editline.h"
> #include "lldb/Host/Host.h"
> +#include "lldb/Host/HostInfo.h"
>
> #include "lldb/Interpreter/Args.h"
> #include "lldb/Interpreter/CommandCompletions.h"
> @@ -67,7 +68,9 @@
>
> #include "lldb/Utility/CleanUp.h"
>
> +#include "llvm/ADT/SmallString.h"
> #include "llvm/ADT/STLExtras.h"
> +#include "llvm/Support/Path.h"
>
> using namespace lldb;
> using namespace lldb_private;
> @@ -2381,13 +2384,15 @@ CommandInterpreter::SourceInitFile (bool
> // "-" and the name of the program. If this file doesn't exist, we fall
> // back to just the "~/.lldbinit" file. We also obey any requests to not
> // load the init files.
> - FileSpec profilePath = Host::GetUserProfileFileSpec();
> + llvm::SmallString<64> home_dir_path;
> + llvm::sys::path::home_directory(home_dir_path);
> + FileSpec profilePath(home_dir_path.c_str(), false);
> profilePath.AppendPathComponent(".lldbinit");
> std::string init_file_path = profilePath.GetPath();
>
> if (m_skip_app_init_files == false)
> {
> - FileSpec program_file_spec (Host::GetProgramFileSpec());
> + FileSpec program_file_spec(HostInfo::GetProgramFileSpec());
> const char *program_name = program_file_spec.GetFilename().AsCString();
>
> if (program_name)
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
More information about the lldb-commits
mailing list