Skip to content

Commit

Permalink
Revert "[lldb] Expand background symbol download (#80890)"
Browse files Browse the repository at this point in the history
This reverts commit 74fc16a.
  • Loading branch information
JDevlieghere committed Feb 8, 2024
1 parent d1fdb41 commit 63b2f16
Show file tree
Hide file tree
Showing 6 changed files with 12 additions and 61 deletions.
23 changes: 1 addition & 22 deletions lldb/include/lldb/Core/ModuleList.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -80,6 +60,7 @@ class ModuleListProperties : public Properties {
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();
Expand All @@ -90,8 +71,6 @@ class ModuleListProperties : public Properties {

bool GetLoadSymbolOnDemand();

lldb::SymbolDownload GetSymbolAutoDownload() const;

PathMappingList GetSymlinkMappings() const;
};

Expand Down
6 changes: 0 additions & 6 deletions lldb/include/lldb/lldb-enumerations.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
7 changes: 1 addition & 6 deletions lldb/source/Core/CoreProperties.td
Original file line number Diff line number Diff line change
Expand Up @@ -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<"">,
Expand Down
13 changes: 4 additions & 9 deletions lldb/source/Core/ModuleList.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
2 changes: 0 additions & 2 deletions lldb/source/Host/common/Host.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
22 changes: 6 additions & 16 deletions lldb/source/Symbol/SymbolLocator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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))
Expand All @@ -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;
};
});
}

0 comments on commit 63b2f16

Please sign in to comment.