[Lldb-commits] [lldb] b076f66 - [lldb] Remove limit on max memory read size (#105765)

via lldb-commits lldb-commits at lists.llvm.org
Tue Sep 3 16:45:31 PDT 2024


Author: Jason Molenda
Date: 2024-09-03T16:45:28-07:00
New Revision: b076f6640e3c2781410588f4a8e4ccfeed8eb606

URL: https://github.com/llvm/llvm-project/commit/b076f6640e3c2781410588f4a8e4ccfeed8eb606
DIFF: https://github.com/llvm/llvm-project/commit/b076f6640e3c2781410588f4a8e4ccfeed8eb606.diff

LOG: [lldb] Remove limit on max memory read size (#105765)

`memory read` will return an error if you try to read more than 1k bytes
in a single command, instructing you to set
`target.max-memory-read-size` or use `--force` if you intended to read
more than that. This is a safeguard for a command where people are being
explicit about how much memory they would like lldb to read (either to
display, or save to a file) and is an annoyance every time you need to
read more than a small amount. If someone confuses the --count argument
with the start address, lldb may begin dumping gigabytes of data but I'd
rather that behavior than requiring everyone to special-case their way
around a common use case.

I don't want to remove the setting because many people have added (much
larger) default max read sizes to their ~/.lldbinit files after hitting
this behavior. Another option would be to stop reading/using the value
in Target.cpp, but I see no harm in leaving the setting if someone
really does prefer to have a small cap on their memory read size.

Added: 
    

Modified: 
    lldb/source/Target/TargetProperties.td
    lldb/test/API/functionalities/memory/big-read/TestMemoryReadMaximumSize.py

Removed: 
    


################################################################################
diff  --git a/lldb/source/Target/TargetProperties.td b/lldb/source/Target/TargetProperties.td
index 7bb5bd53688b14..0f68deb543f90e 100644
--- a/lldb/source/Target/TargetProperties.td
+++ b/lldb/source/Target/TargetProperties.td
@@ -102,7 +102,7 @@ let Definition = "target" in {
     DefaultUnsignedValue<1024>,
     Desc<"Maximum number of characters to show when using %s in summary strings.">;
   def MaxMemReadSize: Property<"max-memory-read-size", "UInt64">,
-    DefaultUnsignedValue<1024>,
+    DefaultUnsignedValue<0xffffffff>,
     Desc<"Maximum number of bytes that 'memory read' will fetch before --force must be specified.">;
   def BreakpointUseAvoidList: Property<"breakpoints-use-platform-avoid-list", "Boolean">,
     DefaultTrue,

diff  --git a/lldb/test/API/functionalities/memory/big-read/TestMemoryReadMaximumSize.py b/lldb/test/API/functionalities/memory/big-read/TestMemoryReadMaximumSize.py
index 259fde71a63626..1bc227dfce9bef 100644
--- a/lldb/test/API/functionalities/memory/big-read/TestMemoryReadMaximumSize.py
+++ b/lldb/test/API/functionalities/memory/big-read/TestMemoryReadMaximumSize.py
@@ -22,6 +22,8 @@ def test_memory_read_max_setting(self):
         )
         self.assertTrue(self.bp.IsValid())
 
+        self.runCmd("settings set target.max-memory-read-size 1024")
+
         self.expect(
             "mem rea -f x -s 4 -c 2048 `&c`",
             error=True,


        


More information about the lldb-commits mailing list