Revert "[lldb] Expand background symbol lookup" (#81182)

Reverts llvm/llvm-project#80890
This commit is contained in:
Jonas Devlieghere 2024-02-08 11:50:53 -08:00 committed by GitHub
parent d1fdb41629
commit 705fcd4e0a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 12 additions and 61 deletions

View File

@ -47,26 +47,6 @@ class UUID;
class VariableList;
struct ModuleFunctionSearchOptions;
static constexpr OptionEnumValueElement g_auto_download_enum_values[] = {
{
lldb::eSymbolDownloadOff,
"off",
"Disable automatically downloading symbols.",
},
{
lldb::eSymbolDownloadBackground,
"background",
"Download symbols in the background for images as they appear in the "
"backtrace.",
},
{
lldb::eSymbolDownloadForeground,
"foreground",
"Download symbols in the foreground for images as they appear in the "
"backtrace.",
},
};
class ModuleListProperties : public Properties {
mutable llvm::sys::RWMutex m_symlink_paths_mutex;
PathMappingList m_symlink_paths;
@ -80,6 +60,7 @@ public:
bool SetClangModulesCachePath(const FileSpec &path);
bool GetEnableExternalLookup() const;
bool SetEnableExternalLookup(bool new_value);
bool GetEnableBackgroundLookup() const;
bool GetEnableLLDBIndexCache() const;
bool SetEnableLLDBIndexCache(bool new_value);
uint64_t GetLLDBIndexCacheMaxByteSize();
@ -90,8 +71,6 @@ public:
bool GetLoadSymbolOnDemand();
lldb::SymbolDownload GetSymbolAutoDownload() const;
PathMappingList GetSymlinkMappings() const;
};

View File

@ -1314,12 +1314,6 @@ enum class ChildCacheState {
///< re-use what we computed the last time we called Update.
};
enum SymbolDownload {
eSymbolDownloadOff = 0,
eSymbolDownloadBackground = 1,
eSymbolDownloadForeground = 2,
};
} // namespace lldb
#endif // LLDB_LLDB_ENUMERATIONS_H

View File

@ -8,12 +8,7 @@ let Definition = "modulelist" in {
def EnableBackgroundLookup: Property<"enable-background-lookup", "Boolean">,
Global,
DefaultFalse,
Desc<"Alias for backward compatibility: when enabled this is the equivalent to 'symbols.download background'.">;
def AutoDownload: Property<"auto-download", "Enum">,
Global,
DefaultEnumValue<"eSymbolDownloadOff">,
EnumValues<"OptionEnumValues(g_auto_download_enum_values)">,
Desc<"On macOS, automatically download symbols with dsymForUUID (or an equivalent script/binary) for relevant images in the debug session.">;
Desc<"On macOS, enable calling dsymForUUID (or an equivalent script/binary) in the background to locate symbol files that weren't found.">;
def ClangModulesCachePath: Property<"clang-modules-cache-path", "FileSpec">,
Global,
DefaultStringValue<"">,

View File

@ -104,15 +104,10 @@ bool ModuleListProperties::SetEnableExternalLookup(bool new_value) {
return SetPropertyAtIndex(ePropertyEnableExternalLookup, new_value);
}
SymbolDownload ModuleListProperties::GetSymbolAutoDownload() const {
// Backward compatibility alias.
if (GetPropertyAtIndexAs<bool>(ePropertyEnableBackgroundLookup, false))
return eSymbolDownloadBackground;
const uint32_t idx = ePropertyAutoDownload;
return GetPropertyAtIndexAs<lldb::SymbolDownload>(
idx, static_cast<lldb::SymbolDownload>(
g_modulelist_properties[idx].default_uint_value));
bool ModuleListProperties::GetEnableBackgroundLookup() const {
const uint32_t idx = ePropertyEnableBackgroundLookup;
return GetPropertyAtIndexAs<bool>(
idx, g_modulelist_properties[idx].default_uint_value != 0);
}
FileSpec ModuleListProperties::GetClangModulesCachePath() const {

View File

@ -550,8 +550,6 @@ llvm::Error Host::OpenFileInExternalEditor(llvm::StringRef editor,
}
bool Host::IsInteractiveGraphicSession() { return false; }
bool Host::IsNetworkLimited() { return false; }
#endif
std::unique_ptr<Connection> Host::CreateDefaultConnection(llvm::StringRef url) {

View File

@ -10,7 +10,6 @@
#include "lldb/Core/Debugger.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Host/Host.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/Support/ThreadPool.h"
@ -19,10 +18,12 @@ using namespace lldb;
using namespace lldb_private;
void SymbolLocator::DownloadSymbolFileAsync(const UUID &uuid) {
if (!ModuleList::GetGlobalModuleListProperties().GetEnableBackgroundLookup())
return;
static llvm::SmallSet<UUID, 8> g_seen_uuids;
static std::mutex g_mutex;
auto lookup = [=]() {
Debugger::GetThreadPool().async([=]() {
{
std::lock_guard<std::mutex> guard(g_mutex);
if (g_seen_uuids.count(uuid))
@ -35,23 +36,12 @@ void SymbolLocator::DownloadSymbolFileAsync(const UUID &uuid) {
module_spec.GetUUID() = uuid;
if (!PluginManager::DownloadObjectAndSymbolFile(module_spec, error,
/*force_lookup=*/true,
/*copy_executable=*/true))
/*copy_executable=*/false))
return;
if (error.Fail())
return;
Debugger::ReportSymbolChange(module_spec);
};
switch (ModuleList::GetGlobalModuleListProperties().GetSymbolAutoDownload()) {
case eSymbolDownloadOff:
break;
case eSymbolDownloadBackground:
Debugger::GetThreadPool().async(lookup);
break;
case eSymbolDownloadForeground:
lookup();
break;
};
});
}