Revert "[lldb] Expand background symbol lookup" (#81182)
Reverts llvm/llvm-project#80890
This commit is contained in:
parent
d1fdb41629
commit
705fcd4e0a
@ -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;
|
||||
};
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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<"">,
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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;
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user