Revert "[lldb] Assert filecache and live memory match on debug under a setting"
authorStella Stamenova <stilis@microsoft.com>
Thu, 29 Jul 2021 17:48:57 +0000 (10:48 -0700)
committerStella Stamenova <stilis@microsoft.com>
Thu, 29 Jul 2021 17:48:57 +0000 (10:48 -0700)
This reverts commit 77e9d10f0fbfe04a14e6ce61753376dd78e0c2f0.

This change broke the Windows LLDB bot:
https://lab.llvm.org/buildbot/#/builders/83/builds/8784/steps/7/logs/stdio

lldb/include/lldb/Core/Section.h
lldb/include/lldb/Target/Target.h
lldb/packages/Python/lldbsuite/test/lldbtest.py
lldb/source/Core/Section.cpp
lldb/source/Target/Target.cpp
lldb/source/Target/TargetProperties.td
lldb/test/Shell/lit-lldb-init.in

index 3914469..3d4ab15 100644 (file)
@@ -236,8 +236,6 @@ public:
 
   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
index d153702..ac8d002 100644 (file)
@@ -229,10 +229,6 @@ public:
 
   bool GetDebugUtilityExpression() const;
 
-  void SetVerifyFileCacheMemoryReads(bool debug);
-
-  bool GetVerifyFileCacheMemoryReads() const;
-
 private:
   // Callbacks for m_launch_info.
   void Arg0ValueChangedCallback();
index 366c40d..7e1fdce 100644 (file)
@@ -798,9 +798,6 @@ class Base(unittest2.TestCase):
             '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.
index af5cee2..a5a1014 100644 (file)
@@ -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);
-}
index 33691e8..1f8e8c5 100644 (file)
@@ -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<uint8_t[]> live_buf =
-                std::make_unique<uint8_t[]>(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<uint8_t[]>(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<uint8_t[]>(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)
index bce4268..8f627ad 100644 (file)
@@ -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 {
index 60670c5..6d3b5fe 100644 (file)
@@ -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