[all-commits] [llvm/llvm-project] d4a55a: [lldb][Breakpoint] Fix setting breakpoints on temp...

Michael137 via All-commits all-commits at lists.llvm.org
Fri Oct 14 15:51:38 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d4a55ad346514b2478762cbc198942c72347e81e
      https://github.com/llvm/llvm-project/commit/d4a55ad346514b2478762cbc198942c72347e81e
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2022-10-14 (Fri, 14 Oct 2022)

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
    M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h
    M lldb/test/API/functionalities/breakpoint/cpp/Makefile
    M lldb/test/API/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py
    M lldb/test/API/functionalities/breakpoint/cpp/main.cpp
    M lldb/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp

  Log Message:
  -----------
  [lldb][Breakpoint] Fix setting breakpoints on templates by basename

This patch fixes a regression with setting breakpoints on template
functions by name. E.g.,:
```
$ cat main.cpp
template<typename T>
struct Foo {
  template<typename U>
  void func() {}
};

int main() {
  Foo<int> f;
  f.func<double>();
}

(lldb) br se -n func
```

This has regressed since `3339000e0bda696c2e29173d15958c0a4978a143`
where we started using the `CPlusPlusNameParser` for getting the
basename of the function symbol and match it exactly against
the name in the breakpoint command. The parser will include template
parameters in the basename, so the exact match will always fail

**Testing**

* Added API tests
* Added unit-tests

Differential Revision: https://reviews.llvm.org/D135921




More information about the All-commits mailing list