[Lldb-commits] [PATCH] D135921: [WIP][lldb][Breakpoint] Fix setting breakpoints on templates by basename

Michael Buch via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Oct 14 03:14:18 PDT 2022


Michael137 added inline comments.


================
Comment at: lldb/test/API/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py:63
+                                           'auto ns::Foo<double>::func<ns::Foo<int>>()']},
+            # {'name': 'func<ns::Foo<int>>', 'loc_names': ['auto ns::Foo<double>::func<ns::Foo<int>>()']}, # FIXME
+
----------------
Michael137 wrote:
> Michael137 wrote:
> > These didn't work before this patch (or in lldb-14) either. So may xfail them for now
> This turns out to be a discrepancy between how we parse basenames for templates and the `DW_AT_name` that gets generated for these nested templates. In DWARF, the name contains a space between angle brackets (i.e., `func<ns::Foo<int> >`). So setting a breakpoint without the space fails to find the function name in the DWARF index. However, adding the space still doesn't work because it trips over something around the parser, haven't checked what exactly yet. Will try address this in a separate patch
Ah, the demangler gives us back a string without the space between angle brackets. So we don't match. 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D135921/new/

https://reviews.llvm.org/D135921



More information about the lldb-commits mailing list