[Lldb-commits] [lldb] [LLDB] Serve unknown type symbols through `qSymbol` (PR #200134)

Aurore Poirier via lldb-commits lldb-commits at lists.llvm.org
Fri May 29 02:58:11 PDT 2026


aurore-poirier wrote:

Here's the simplest reproducer I could pull out for an ELF system that compares the 3 version (my system's LLDB, GDB, and the PR LLDB): [min.tar.gz](https://github.com/user-attachments/files/28386656/min.tar.gz). It has a mock gdb server written in python that handles initial connection then asks for symbols through `qSymbol` queries.

I don't have a Darwin or any MachO system on hand, I guess the conversion should not be too hard, it should only be variables specified when calling `make`.

# Use on my ELF setup

This should work on most distros with llvm binaries in the path. All are in `Makefile` variables hence can be overridden.

`PR_LLDB` should be the path to `lldb` compiled from this PR, for comparison

```sh
tar -xzf min.tar.gz
cd min
make -r elf PR_LLDB=
```


Output of resolved symbols (a bit of noise from GDB suppressed):
```
=== WITH LLDB ===
main: b'111c'
local_address: b'111d'
global_value: b''
local_value: b''
=== WITH GDB ===
main: b'111c'
local_address: b'111d'
global_value: b'1234'
local_value: b'abcd'
=== WITH PR LLDB ===
main: b'111c'
local_address: b'111d'
global_value: b'1234'
local_value: b'abcd'
```

`objdump -t min` of the interesting symbols sorted in the request order (not the ones added by clang):
```objdump
000000000000111c g       .text  0000000000000000              main
000000000000111d l       .text  0000000000000000              local_address
0000000000001234 g       *ABS*  0000000000000000              global_value
000000000000abcd l       *ABS*  0000000000000000              local_value
```

# Use on MachO platforms

Should be more or less the same, except it uses `make -r macho` instead of `make -r elf`

https://github.com/llvm/llvm-project/pull/200134


More information about the lldb-commits mailing list