llvmorg-github-actions[bot] wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-lldb

Author: Jonas Devlieghere (JDevlieghere)

<details>
<summary>Changes</summary>

ScriptedFrame.get_register_info() dispatched on a hardcoded list of 
architectures (x86_64/arm64/arm/hexagon) to pick a general-purpose register 
layout and raised ValueError for anything else. Because ScriptedFrame.__init__ 
calls get_register_info() eagerly, this made every scripted frame fail to 
construct on an unlisted architecture such as wasm32: the Python exception 
surfaced as "invalid script object", the frame provider produced an empty 
stack, and that tripped the "a valid thread has no frames" assert in 
StackFrameList::GetFrameAtIndex.

Without better error reporting, I don't think that's a good or welcoming 
default.

Such architectures have no predefined GPR layout here, so leave the register 
info empty instead of raising and let the frame construct.

Assisted-by: Claude

---
Full diff: https://github.com/llvm/llvm-project/pull/205692.diff


1 Files Affected:

- (modified) lldb/examples/python/templates/scripted_process.py (+5-1) 


``````````diff
diff --git a/lldb/examples/python/templates/scripted_process.py 
b/lldb/examples/python/templates/scripted_process.py
index af21c80e6896d..82e19d82357aa 100644
--- a/lldb/examples/python/templates/scripted_process.py
+++ b/lldb/examples/python/templates/scripted_process.py
@@ -533,7 +533,11 @@ def get_register_info(self):
                     self.register_info["sets"] = ["General Purpose Registers"]
                     self.register_info["registers"] = HEXAGON_GPR
                 else:
-                    raise ValueError("Unknown architecture", self.arch)
+                    # No predefined general-purpose register layout for this
+                    # architecture. Leave the register info empty rather than
+                    # failing to construct the scripted frame.
+                    self.register_info["sets"] = []
+                    self.register_info["registers"] = []
         return self.register_info
 
     @abstractmethod

``````````

</details>


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

Reply via email to