| Issue |
183388
|
| Summary |
LLDB 22 Regression `SBFrame.EvaluateExpression("$sp")` fails with "TypeSystem for language assembly doesn't exist"
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
patryk4815
|
On AArch64 (Fedora 43), evaluating a register _expression_ such as `"$sp"`
from Python via `SBFrame.EvaluateExpression` works in LLDB 21.1.7 but
fails in LLDB 22.1.0 with:
error: Could not find type system for language assembly: TypeSystem for language assembly doesn't exist
This appears to be a regression 22.1.0 affecting
_expression_ evaluation in frames whose source language is detected as
assembly (e.g. `_start` in the dynamic loader).
------------------------------------------------------------------------
## Environment
- OS: Fedora 43
- Architecture: aarch64
- LLDB 21.1.7 (working)
- LLDB 22.1.0 (failing)
- Tested via `lldb-for-pwndbg` Python packages:
- `lldb-for-pwndbg==21.1.7.post1`
- `lldb-for-pwndbg==22.1.0.post1`
------------------------------------------------------------------------
## Reproducer
### Test program
``` c
#include <stdio.h>
int main() {
printf("hello");
return 0;
}
```
Compiled as a dynamically linked AArch64 ELF (`gcc ./hello.c -o ./hello -g`)
(e.g. `hello.aarch64.dynamic`).
------------------------------------------------------------------------
### LLDB 21.1.7 (works)
$ uv tool run --from lldb-for-pwndbg==21.1.7.post1 lldb
(lldb) version
lldb version 21.1.7
(lldb) file ./hello.aarch64.dynamic
(lldb) process launch -s
Process stopped at ld-linux-aarch64.so.1`_start
(lldb) script
>>> lldb.frame
frame #0: 0x0000fffff7fd9d80 ld-linux-aarch64.so.1`_start at dl-start.S:22
>>> lldb.frame.EvaluateExpression('$sp')
(unsigned long) $0 = 281474976707136
_expression_ evaluation of `$sp` succeeds.
------------------------------------------------------------------------
### LLDB 22.1.0 (fails)
$ uv tool run --from lldb-for-pwndbg==22.1.0.post1 lldb
(lldb) version
lldb version 22.1.0
(lldb) file ./hello.aarch64.dynamic
(lldb) process launch -s
Process stopped at ld-linux-aarch64.so.1`_start
(lldb) script
>>> lldb.frame
frame #0: 0x0000fffff7fd9d80 ld-linux-aarch64.so.1`_start at dl-start.S:22
>>> lldb.frame.EvaluateExpression('$sp')
error: Could not find type system for language assembly: TypeSystem for language assembly doesn't exist
Now `EvaluateExpression('$sp')` fails when the current frame language is
assembly.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs