================
@@ -0,0 +1,44 @@
+from textwrap import dedent
+import lldb
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+from lldbsuite.test.gdbclientutils import *
+from lldbsuite.test.lldbgdbclient import GDBRemoteTestBase
+
+
+class MyResponder(MockGDBServerResponder):
+    def other(self, packet) -> str:
+        if packet.startswith("_M"):
+            return "E04"
+        else:
+            return super().other(packet)
+
+    def readRegister(self, regnum):
+        return "E01"
+
+    def readRegisters(self):
+        return 
"20000000000000002000000000000000f0c154bfffff00005daa985a8fea0b48f0b954bfffff0000ad13cce570150b48380000000000000070456abfffff0000a700000000000000000000000000000001010101010101010000000000000000f0c154bfffff00000f2700000000000008e355bfffff0000080e55bfffff0000281041000000000010de61bfffff00005c05000000000000f0c154bfffff000090fcffffffff00008efcffffffff00008ffcffffffff00000000000000000000001000000000000090fcffffffff000000d06cbfffff0000f0c154bfffff00000100000000000000d0b954bfffff0000e407400000000000d0b954bfffff0000e40740000000000000100000"
+
+
+class TestExprNoAlloc(GDBRemoteTestBase):
+    @skipIfRemote
+    @skipIfLLVMTargetMissing("AArch64")
+    def test(self):
+        """
+        Test that a simple expression can be evaluated when the server 
supports the '_M'
+        packet, but memory cannot be allocated, and it returns an error code 
response.
----------------
jimingham wrote:

We allocate memory in expression evaluation both to hold the JIT code and the 
expression results.  We inject the result into the target so that you can pass 
the result of one expression to a subsequent expression even if the expression 
wants a reference to the value. 

If the expression is sufficiently simple that we can IR interpret it in lldb, 
we won't need to allocate memory for the JIT code, but we will still need to 
insert the result into the target for reuse.  We handle this in the case where 
there isn't a process, but I'm not sure what happens if we fail to allocate 
memory for the result when we have a live process.

https://github.com/llvm/llvm-project/pull/176099
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to