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
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to