[lldb] Warn the user about starting the --func-regex parameter with an asterisk
authorRaphael Isemann <teemperor@gmail.com>
Wed, 6 May 2020 10:21:53 +0000 (12:21 +0200)
committerRaphael Isemann <teemperor@gmail.com>
Wed, 6 May 2020 10:37:52 +0000 (12:37 +0200)
commitaaf68cd9ce2fda224e02fd0f860e6372b4b00e47
treec5ace5e62730afc1cad2fa24bf2929fbcb474fb8
parentfedd52682ec70fd13b08eeac99ee0954292af9da
[lldb] Warn the user about starting the --func-regex parameter with an asterisk

Summary:
Sometimes users think that setting a function regex for all function that contain the word 'needle' in their
name looks like this: `*needle*`. However, LLDB only searches the function name and doesn't fully match
it against the regex, so the leading and trailing '*' operators don't do anything and actually just cause the
regex engine to reject the regular expression with "repetition-operator operand invalid".

This patch makes this a bit more obvious to the user by printing a warning that a leading '*' before this
regular expression here doesn't have any purpose (and will cause an error). This doesn't attempt to detect
a case where there is only a trailing '*' as that would involve parsing the regex and it seems the most
common way to end up in this situation is by doing `rbreak *needle*`.

Reviewers: JDevlieghere

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D78809
lldb/source/Commands/CommandObjectBreakpoint.cpp
lldb/test/API/commands/breakpoint/set/func-regex/TestBreakpointRegexError.py