[Lldb-commits] [lldb] Fix pointer to reference type (PR #113596)

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Thu Oct 31 06:27:39 PDT 2024


labath wrote:

Regarding the vector summary example, it looks like that there's still a lot of room for improvement there. This is what I get before this patch:
```
(lldb) v v vp vr vpr &v &vp &vr &vpr
(std::vector<int>) v = size=2 {
  [0] = 0
  [1] = 0
}
(std::vector<int> *) vp = 0x00007fffffffd7b0 size=2
(std::vector<int> &) vr = size=2: {
  [0] = 0
  [1] = 0
}
(std::vector<int> *&) vpr = size=1: {
  &vpr = 0x00007fffffffd7b0 size=2
}
(std::vector<int> *) &v = 0x00007fffffffd7b0 size=2
(std::vector<int> **) &vp = 0x00007fffffffd7a0 size=1
(std::vector<int> &*) &vr = 0x00007fffffffd790 size=1
(std::vector<int> *&*) &vpr = 0x00007fffffffd788 size=1
```

And this comes after it:
```
(lldb) v v vp vr vpr &v &vp &vr &vpr
(std::vector<int>) v = size=2 {
  [0] = 0
  [1] = 0
}
(std::vector<int> *) vp = 0x00007fffffffd7b0 size=2
(std::vector<int> &) vr = size=2: {
  [0] = 0
  [1] = 0
}
(std::vector<int> *&) vpr = size=1: {
  &vpr = 0x00007fffffffd7b0 size=2
}
(std::vector<int> *) &v = 0x00007fffffffd7b0 size=2
(std::vector<int> **) &vp = 0x00007fffffffd7a0 size=1
(std::vector<int> *) &&vr = 0x00007fffffffd7b0 size=2
(std::vector<int> **) &&vpr = 0x00007fffffffd7a0 size=1
```

The output for `&vr` changes (for the better, I guess), but `vpr`, `&vp` and `&vpr` are still extremely dubios, so if you want to tackle this issue seriously, then we also need to discuss what should the data formatters/summary providers do when faced with nested pointers and references.

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


More information about the lldb-commits mailing list