summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Platform/MacOSX
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/Platform/MacOSX')
-rw-r--r--lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp87
-rw-r--r--lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h6
-rw-r--r--lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp87
-rw-r--r--lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h6
-rw-r--r--lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp88
-rw-r--r--lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h6
6 files changed, 57 insertions, 223 deletions
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp
index 30af2bb2250..7827ae84e71 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp
@@ -613,82 +613,33 @@ PlatformRemoteAppleTV::GetFileInSDK (const char *platform_file_path,
uint32_t sdk_idx,
lldb_private::FileSpec &local_file)
{
+ Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
if (sdk_idx < m_sdk_directory_infos.size())
{
- char sdkroot_path[PATH_MAX];
- const SDKDirectoryInfo &sdk_dir_info = m_sdk_directory_infos[sdk_idx];
- if (sdk_dir_info.directory.GetPath(sdkroot_path, sizeof(sdkroot_path)))
+ std::string sdkroot_path = m_sdk_directory_infos[sdk_idx].directory.GetPath();
+ if (!sdkroot_path.empty() && platform_file_path && platform_file_path[0])
{
- const bool symbols_dirs_only = true;
+ // We may need to interpose "/Symbols/" or "/Symbols.Internal/" between the
+ // SDK root directory and the file path.
- return GetFileInSDKRoot (platform_file_path,
- sdkroot_path,
- symbols_dirs_only,
- local_file);
- }
- }
- return false;
-}
-
-bool
-PlatformRemoteAppleTV::GetFileInSDKRoot (const char *platform_file_path,
- const char *sdkroot_path,
- bool symbols_dirs_only,
- lldb_private::FileSpec &local_file)
-{
- Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
- if (sdkroot_path && sdkroot_path[0] && platform_file_path && platform_file_path[0])
- {
- char resolved_path[PATH_MAX];
-
- if (!symbols_dirs_only)
- {
- ::snprintf (resolved_path,
- sizeof(resolved_path),
- "%s%s",
- sdkroot_path,
- platform_file_path);
-
- local_file.SetFile(resolved_path, true);
- if (local_file.Exists())
+ const char *paths_to_try[] = { "Symbols", "", "Symbols.Internal", nullptr };
+ for (size_t i = 0; paths_to_try[i] != nullptr; i++)
{
- if (log)
+ local_file.SetFile (sdkroot_path.c_str(), false);
+ if (paths_to_try[i][0] != '\0')
+ local_file.AppendPathComponent (paths_to_try[i]);
+ local_file.AppendPathComponent (platform_file_path);
+ local_file.ResolvePath();
+ if (local_file.Exists())
{
- log->Printf ("Found a copy of %s in the SDK dir %s", platform_file_path, sdkroot_path);
+ if (log)
+ log->Printf ("Found a copy of %s in the SDK dir %s/%s", platform_file_path,
+ sdkroot_path.c_str(),
+ paths_to_try[i]);
+ return true;
}
- return true;
- }
- }
-
- ::snprintf (resolved_path,
- sizeof(resolved_path),
- "%s/Symbols.Internal%s",
- sdkroot_path,
- platform_file_path);
-
- local_file.SetFile(resolved_path, true);
- if (local_file.Exists())
- {
- if (log)
- {
- log->Printf ("Found a copy of %s in the SDK dir %s/Symbols.Internal", platform_file_path, sdkroot_path);
- }
- return true;
- }
- ::snprintf (resolved_path,
- sizeof(resolved_path),
- "%s/Symbols%s",
- sdkroot_path,
- platform_file_path);
-
- local_file.SetFile(resolved_path, true);
- if (local_file.Exists())
- {
- if (log)
- {
- log->Printf ("Found a copy of %s in the SDK dir %s/Symbols", platform_file_path, sdkroot_path);
+ local_file.Clear();
}
- return true;
}
}
return false;
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h
index 28bd9df0fad..fa1bc51ba43 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h
@@ -151,12 +151,6 @@ protected:
uint32_t sdk_idx,
lldb_private::FileSpec &local_file);
- bool
- GetFileInSDKRoot (const char *platform_file_path,
- const char *sdkroot_path,
- bool symbols_dirs_only,
- lldb_private::FileSpec &local_file);
-
uint32_t
FindFileInAllSDKs (const lldb_private::FileSpec &platform_file,
lldb_private::FileSpecList &file_list);
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp
index ba59887ccf2..54fc05978ed 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp
@@ -624,82 +624,33 @@ PlatformRemoteAppleWatch::GetFileInSDK (const char *platform_file_path,
uint32_t sdk_idx,
lldb_private::FileSpec &local_file)
{
+ Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
if (sdk_idx < m_sdk_directory_infos.size())
{
- char sdkroot_path[PATH_MAX];
- const SDKDirectoryInfo &sdk_dir_info = m_sdk_directory_infos[sdk_idx];
- if (sdk_dir_info.directory.GetPath(sdkroot_path, sizeof(sdkroot_path)))
+ std::string sdkroot_path = m_sdk_directory_infos[sdk_idx].directory.GetPath();
+ if (!sdkroot_path.empty() && platform_file_path && platform_file_path[0])
{
- const bool symbols_dirs_only = true;
+ // We may need to interpose "/Symbols/" or "/Symbols.Internal/" between the
+ // SDK root directory and the file path.
- return GetFileInSDKRoot (platform_file_path,
- sdkroot_path,
- symbols_dirs_only,
- local_file);
- }
- }
- return false;
-}
-
-bool
-PlatformRemoteAppleWatch::GetFileInSDKRoot (const char *platform_file_path,
- const char *sdkroot_path,
- bool symbols_dirs_only,
- lldb_private::FileSpec &local_file)
-{
- Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
- if (sdkroot_path && sdkroot_path[0] && platform_file_path && platform_file_path[0])
- {
- char resolved_path[PATH_MAX];
-
- if (!symbols_dirs_only)
- {
- ::snprintf (resolved_path,
- sizeof(resolved_path),
- "%s%s",
- sdkroot_path,
- platform_file_path);
-
- local_file.SetFile(resolved_path, true);
- if (local_file.Exists())
+ const char *paths_to_try[] = { "Symbols", "", "Symbols.Internal", nullptr };
+ for (size_t i = 0; paths_to_try[i] != nullptr; i++)
{
- if (log)
+ local_file.SetFile (sdkroot_path.c_str(), false);
+ if (paths_to_try[i][0] != '\0')
+ local_file.AppendPathComponent (paths_to_try[i]);
+ local_file.AppendPathComponent (platform_file_path);
+ local_file.ResolvePath();
+ if (local_file.Exists())
{
- log->Printf ("Found a copy of %s in the SDK dir %s", platform_file_path, sdkroot_path);
+ if (log)
+ log->Printf ("Found a copy of %s in the SDK dir %s/%s", platform_file_path,
+ sdkroot_path.c_str(),
+ paths_to_try[i]);
+ return true;
}
- return true;
- }
- }
-
- ::snprintf (resolved_path,
- sizeof(resolved_path),
- "%s/Symbols.Internal%s",
- sdkroot_path,
- platform_file_path);
-
- local_file.SetFile(resolved_path, true);
- if (local_file.Exists())
- {
- if (log)
- {
- log->Printf ("Found a copy of %s in the SDK dir %s/Symbols.Internal", platform_file_path, sdkroot_path);
- }
- return true;
- }
- ::snprintf (resolved_path,
- sizeof(resolved_path),
- "%s/Symbols%s",
- sdkroot_path,
- platform_file_path);
-
- local_file.SetFile(resolved_path, true);
- if (local_file.Exists())
- {
- if (log)
- {
- log->Printf ("Found a copy of %s in the SDK dir %s/Symbols", platform_file_path, sdkroot_path);
+ local_file.Clear();
}
- return true;
}
}
return false;
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h
index 891bc5d1c6e..1cf93c21ac7 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h
@@ -153,12 +153,6 @@ protected:
uint32_t sdk_idx,
lldb_private::FileSpec &local_file);
- bool
- GetFileInSDKRoot (const char *platform_file_path,
- const char *sdkroot_path,
- bool symbols_dirs_only,
- lldb_private::FileSpec &local_file);
-
uint32_t
FindFileInAllSDKs (const lldb_private::FileSpec &platform_file,
lldb_private::FileSpecList &file_list);
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp
index abc429a7234..b67a246b26a 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp
@@ -610,83 +610,33 @@ PlatformRemoteiOS::GetFileInSDK (const char *platform_file_path,
uint32_t sdk_idx,
lldb_private::FileSpec &local_file)
{
+ Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
if (sdk_idx < m_sdk_directory_infos.size())
{
- char sdkroot_path[PATH_MAX];
- const SDKDirectoryInfo &sdk_dir_info = m_sdk_directory_infos[sdk_idx];
- if (sdk_dir_info.directory.GetPath(sdkroot_path, sizeof(sdkroot_path)))
- {
- const bool symbols_dirs_only = true;
-
- return GetFileInSDKRoot (platform_file_path,
- sdkroot_path,
- symbols_dirs_only,
- local_file);
- }
- }
- return false;
-}
-
+ std::string sdkroot_path = m_sdk_directory_infos[sdk_idx].directory.GetPath();
+ local_file.Clear();
-bool
-PlatformRemoteiOS::GetFileInSDKRoot (const char *platform_file_path,
- const char *sdkroot_path,
- bool symbols_dirs_only,
- lldb_private::FileSpec &local_file)
-{
- Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
- if (sdkroot_path && sdkroot_path[0] && platform_file_path && platform_file_path[0])
- {
- char resolved_path[PATH_MAX];
-
- if (!symbols_dirs_only)
+ if (!sdkroot_path.empty() && platform_file_path && platform_file_path[0])
{
- ::snprintf (resolved_path,
- sizeof(resolved_path),
- "%s%s",
- sdkroot_path,
- platform_file_path);
-
- local_file.SetFile(resolved_path, true);
- if (local_file.Exists())
+ // We may need to interpose "/Symbols/" or "/Symbols.Internal/" between the
+ // SDK root directory and the file path.
+
+ const char *paths_to_try[] = { "Symbols", "", "Symbols.Internal", nullptr };
+ for (size_t i = 0; paths_to_try[i] != nullptr; i++)
{
- if (log)
+ local_file.SetFile (sdkroot_path.c_str(), false);
+ if (paths_to_try[i][0] != '\0')
+ local_file.AppendPathComponent (paths_to_try[i]);
+ local_file.AppendPathComponent (platform_file_path);
+ local_file.ResolvePath();
+ if (local_file.Exists())
{
- log->Printf ("Found a copy of %s in the SDK dir %s", platform_file_path, sdkroot_path);
+ if (log)
+ log->Printf ("Found a copy of %s in the SDK dir %s/%s", platform_file_path, sdkroot_path.c_str(), paths_to_try[i]);
+ return true;
}
- return true;
- }
- }
-
- ::snprintf (resolved_path,
- sizeof(resolved_path),
- "%s/Symbols.Internal%s",
- sdkroot_path,
- platform_file_path);
-
- local_file.SetFile(resolved_path, true);
- if (local_file.Exists())
- {
- if (log)
- {
- log->Printf ("Found a copy of %s in the SDK dir %s/Symbols.Internal", platform_file_path, sdkroot_path);
- }
- return true;
- }
- ::snprintf (resolved_path,
- sizeof(resolved_path),
- "%s/Symbols%s",
- sdkroot_path,
- platform_file_path);
-
- local_file.SetFile(resolved_path, true);
- if (local_file.Exists())
- {
- if (log)
- {
- log->Printf ("Found a copy of %s in the SDK dir %s/Symbols", platform_file_path, sdkroot_path);
+ local_file.Clear();
}
- return true;
}
}
return false;
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h
index 9726d8238e1..56e76f495e1 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h
@@ -149,12 +149,6 @@ protected:
uint32_t sdk_idx,
lldb_private::FileSpec &local_file);
- bool
- GetFileInSDKRoot (const char *platform_file_path,
- const char *sdkroot_path,
- bool symbols_dirs_only,
- lldb_private::FileSpec &local_file);
-
uint32_t
FindFileInAllSDKs (const lldb_private::FileSpec &platform_file,
lldb_private::FileSpecList &file_list);
OpenPOWER on IntegriCloud