<rdar://problem/9141269>
authorGreg Clayton <gclayton@apple.com>
Wed, 30 Jan 2013 00:18:29 +0000 (00:18 +0000)
committerGreg Clayton <gclayton@apple.com>
Wed, 30 Jan 2013 00:18:29 +0000 (00:18 +0000)
commit1b3815cbf483fa1cc5c5b6d7b567722b3c802bf6
tree2be6a86d11bf5507a38fa2a457351df356ff982b
parenta4db5d08393c16cb0de83f96c49fc5911fd5f5ed
<rdar://problem/9141269>

Cleaned up the objective C name parsing code to use a class.

Now breakpoints that are set by name that are objective C methods without the leading '+' or '-' will resolve. We do this by expanding all the objective C names for a given string. For example:

(lldb) b [MyString cStringUsingEncoding:]

Will set a breakpoint with multiple possible names:
-[MyString cStringUsingEncoding:]
+[MyString cStringUsingEncoding:]

Also if you have a category, it will strip the category and set a breakpoint in all variants:

(lldb) [MyString(my_category) cStringUsingEncoding:]

Will resolve to the following names:

-[MyString(my_category) cStringUsingEncoding:]
+[MyString(my_category) cStringUsingEncoding:]
-[MyString cStringUsingEncoding:]
+[MyString cStringUsingEncoding:]

Likewise when we have:

(lldb) b -[MyString(my_category) cStringUsingEncoding:]

It will resolve to two names:
-[MyString(my_category) cStringUsingEncoding:]
-[MyString cStringUsingEncoding:]

llvm-svn: 173858
lldb/include/lldb/Core/RegularExpression.h
lldb/include/lldb/Core/Timer.h
lldb/include/lldb/Target/ObjCLanguageRuntime.h
lldb/source/Breakpoint/BreakpointResolverName.cpp
lldb/source/Core/RegularExpression.cpp
lldb/source/Interpreter/CommandInterpreter.cpp
lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp
lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
lldb/source/Symbol/Symtab.cpp
lldb/source/Target/ObjCLanguageRuntime.cpp