diff --git a/lldb/include/lldb/Core/Section.h b/lldb/include/lldb/Core/Section.h index 3914469aafc1aa..3d4ab154e743f8 100644 --- a/lldb/include/lldb/Core/Section.h +++ b/lldb/include/lldb/Core/Section.h @@ -236,8 +236,6 @@ class Section : public std::enable_shared_from_this
, void SetIsRelocated(bool b) { m_relocated = b; } - bool IsReadOnly(); - protected: ObjectFile *m_obj_file; // The object file that data for this section should // be read from diff --git a/lldb/include/lldb/Target/Target.h b/lldb/include/lldb/Target/Target.h index d15370259f467b..ac8d002b09a128 100644 --- a/lldb/include/lldb/Target/Target.h +++ b/lldb/include/lldb/Target/Target.h @@ -229,10 +229,6 @@ class TargetProperties : public Properties { bool GetDebugUtilityExpression() const; - void SetVerifyFileCacheMemoryReads(bool debug); - - bool GetVerifyFileCacheMemoryReads() const; - private: // Callbacks for m_launch_info. void Arg0ValueChangedCallback(); diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index 366c40db815072..7e1fdce36ede63 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -798,9 +798,6 @@ def setUpCommands(cls): 'settings set symbols.clang-modules-cache-path "{}"'.format( configuration.lldb_module_cache_dir), "settings set use-color false", - - # Verify that file cache and live memory always match. - "settings set target.verify-file-cache-memory-reads true", ] # Set any user-overridden settings. diff --git a/lldb/source/Core/Section.cpp b/lldb/source/Core/Section.cpp index af5cee2f9b9b95..a5a10141aa6496 100644 --- a/lldb/source/Core/Section.cpp +++ b/lldb/source/Core/Section.cpp @@ -599,9 +599,3 @@ size_t SectionList::Slide(addr_t slide_amount, bool slide_children) { } return count; } - -bool Section::IsReadOnly() { - auto permissions = Flags(GetPermissions()); - return !permissions.Test(ePermissionsWritable) && - permissions.Test(ePermissionsReadable); -} diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp index 33691e8e978562..1f8e8c54fa9e12 100644 --- a/lldb/source/Target/Target.cpp +++ b/lldb/source/Target/Target.cpp @@ -1763,34 +1763,21 @@ size_t Target::ReadMemory(const Address &addr, void *dst, size_t dst_len, // Read from file cache if read-only section. if (!force_live_memory && resolved_addr.IsSectionOffset()) { SectionSP section_sp(resolved_addr.GetSection()); - if (section_sp && section_sp->IsReadOnly()) { - file_cache_bytes_read = - ReadMemoryFromFileCache(resolved_addr, dst, dst_len, error); - - if (GetVerifyFileCacheMemoryReads()) { - if (ProcessIsValid() && file_cache_bytes_read == dst_len) { - if (load_addr == LLDB_INVALID_ADDRESS) - load_addr = resolved_addr.GetLoadAddress(this); - if (load_addr != LLDB_INVALID_ADDRESS) { - std::unique_ptr live_buf = - std::make_unique(dst_len); - bytes_read = m_process_sp->ReadMemory(load_addr, live_buf.get(), - dst_len, error); - if (bytes_read == dst_len) { - lldbassert(memcmp(live_buf.get(), dst, dst_len) == 0 && - "File cache and live memory diverge!"); - } - } + if (section_sp) { + auto permissions = Flags(section_sp->GetPermissions()); + bool is_readonly = !permissions.Test(ePermissionsWritable) && + permissions.Test(ePermissionsReadable); + if (is_readonly) { + file_cache_bytes_read = + ReadMemoryFromFileCache(resolved_addr, dst, dst_len, error); + if (file_cache_bytes_read == dst_len) + return file_cache_bytes_read; + else if (file_cache_bytes_read > 0) { + file_cache_read_buffer = + std::make_unique(file_cache_bytes_read); + std::memcpy(file_cache_read_buffer.get(), dst, file_cache_bytes_read); } } - - if (file_cache_bytes_read == dst_len) - return file_cache_bytes_read; - if (file_cache_bytes_read > 0) { - file_cache_read_buffer = - std::make_unique(file_cache_bytes_read); - std::memcpy(file_cache_read_buffer.get(), dst, file_cache_bytes_read); - } } } @@ -4389,17 +4376,6 @@ void TargetProperties::SetDebugUtilityExpression(bool debug) { m_collection_sp->SetPropertyAtIndexAsBoolean(nullptr, idx, debug); } -bool TargetProperties::GetVerifyFileCacheMemoryReads() const { - const uint32_t idx = ePropertyVerifyFileCacheMemoryReads; - return m_collection_sp->GetPropertyAtIndexAsBoolean( - nullptr, idx, g_target_properties[idx].default_uint_value != 0); -} - -void TargetProperties::SetVerifyFileCacheMemoryReads(bool verify) { - const uint32_t idx = ePropertyVerifyFileCacheMemoryReads; - m_collection_sp->SetPropertyAtIndexAsBoolean(nullptr, idx, verify); -} - // Target::TargetEventData Target::TargetEventData::TargetEventData(const lldb::TargetSP &target_sp) diff --git a/lldb/source/Target/TargetProperties.td b/lldb/source/Target/TargetProperties.td index bce426884a7d2c..8f627ad0f1a868 100644 --- a/lldb/source/Target/TargetProperties.td +++ b/lldb/source/Target/TargetProperties.td @@ -175,9 +175,6 @@ let Definition = "target" in { def DebugUtilityExpression: Property<"debug-utility-expression", "Boolean">, DefaultFalse, Desc<"Enable debugging of LLDB-internal utility expressions.">; - def VerifyFileCacheMemoryReads: Property<"verify-file-cache-memory-reads", "Boolean">, - DefaultFalse, - Desc<"Verify that memory read from the file-cache is identical to the memory read from the process.">; } let Definition = "process_experimental" in { diff --git a/lldb/test/Shell/lit-lldb-init.in b/lldb/test/Shell/lit-lldb-init.in index 60670c53574218..6d3b5fefb3bd38 100644 --- a/lldb/test/Shell/lit-lldb-init.in +++ b/lldb/test/Shell/lit-lldb-init.in @@ -6,4 +6,3 @@ settings set symbols.clang-modules-cache-path "@LLDB_TEST_MODULE_CACHE_LLDB@" settings set target.auto-apply-fixits false settings set target.inherit-tcc true settings set target.detach-on-error false -settings set target.verify-file-cache-memory-reads true