I think we should fix lldb to reconstruct the full name based on the information from the dwarf. Right now, it seems both clang and gcc provide enough information to do this. If we start doing that, then it should also be fairly easy to implement some kind of fancy formatting (like we spoke about in the demangler thread), where we elide some information for deeply nested templates. Who knows, maybe the removal of long <params> lists will also save some space in the dwarf.
On Tue, 8 May 2018 at 18:35, Adrian Prantl via lldb-commits < lldb-commits@lists.llvm.org> wrote: > I made a small experiment where I manually edited the DW_AT_name in the assembler output: > Baseline: > $ lldb with_params > (lldb) target create "with_params" > (lldb) b 5 > (lldb) r > Process 28369 stopped > * thread #1, name = 'with_params', stop reason = breakpoint 1.1 > frame #0: 0x00000000004004fc with_params`main(argc=1, argv=0x00007fffffffe578) at template.cpp:5 > 2 > 3 int main(int argc, char **argv) { > 4 MyC<int> c = {23}; > -> 5 return c.t; > 6 } > Target 0: (with_params) stopped. > (lldb) p c > (MyC<int>) $0 = (t = 23) > ^^^^^^^^^^ > Without the parameters: > $ lldb no_params > (lldb) target create "no_params" > (lldb) b 5 > * thread #1, name = 'no_params', stop reason = breakpoint 1.1 > frame #0: 0x00000000004004fc no_params`main(argc=1, argv=0x00007fffffffe588) at template.cpp:5 > 2 > 3 int main(int argc, char **argv) { > 4 MyC<int> c = {23}; > -> 5 return c.t; > 6 } > Target 0: (no_params) stopped. > (lldb) p c > (MyC) $0 = (t = 23) > ^^^^^ > Note how lldb uses the typename to print the result type of the expression. > -- adrian > _______________________________________________ > lldb-commits mailing list > lldb-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits