llvm-project/lldb/include/lldb
Greg Clayton 6234a5c863 Centralize the way symbol and functions are looked up by making a Module::LookupInfo class that does all of the heavy lifting.
Background: symbols and functions can be looked up by full mangled name and by basename. SymbolFile and ObjectFile are expected to be able to do the lookups based on full mangled name or by basename, so when the user types something that is incomplete, we must be able to look it up efficiently. For example the user types "a:🅱️:c" as a symbol to set a breakpoint on, we will break this down into a 'lookup "c"' and then weed out N matches down to just the ones that match "a:🅱️:c". Previously this was done manaully in many functions by calling Module::PrepareForFunctionNameLookup(...) and then doing the lookup and manually pruning the results down afterward with duplicated code. Now all places use Module::LookupInfo to do the work in one place.

This allowed me to fix the name lookups to look for "func" with eFunctionNameTypeFull as the "name_type_mask", and correctly weed the results:

"func", "func()", "func(int)", "a::func()", "b::func()", and "a:🅱️:func()" down to just "func", "func()", "func(int)". Previously we would have set 6 breakpoints, now we correctly set just 3. This also extends to the expression parser when it looks up names for functions it needs to not get multiple results so we can call the correct function.

<rdar://problem/24599697> 

llvm-svn: 275281
2016-07-13 17:12:24 +00:00
..
API Add an API to unwind from a hand-called expression. 2016-07-08 02:12:05 +00:00
Breakpoint Centralize the way symbol and functions are looked up by making a Module::LookupInfo class that does all of the heavy lifting. 2016-07-13 17:12:24 +00:00
Core Centralize the way symbol and functions are looked up by making a Module::LookupInfo class that does all of the heavy lifting. 2016-07-13 17:12:24 +00:00
DataFormatters Add data formatter for libstdc++ shared_ptr and weak_ptr 2016-07-06 09:50:00 +00:00
Expression Added support for thread local variables on all Apple OS variants. 2016-07-01 17:17:23 +00:00
Host Fix typo in eOpenOptionDontFollowSymlinks 2016-06-21 00:03:57 +00:00
Initialization remove use of Mutex in favour of std::{,recursive_}mutex 2016-05-18 01:59:10 +00:00
Interpreter Implement ProcessInfo::Dump(), log gdb-remote stub launch 2016-05-31 18:32:20 +00:00
Symbol Enhance FuncUnwinders::GetUnwindPlanAtNonCallSite to detect when we 2016-07-06 23:06:19 +00:00
Target Make ThreadPlanStepInstruction's constructor public. 2016-07-12 01:43:46 +00:00
Utility Because of our lifetime rules w.r.t. ValueObjects and ClusterManagers, synthetic children caching is a tricky area: 2016-07-06 21:24:28 +00:00
lldb-defines.h Add UNUSED_IF_ASSERT_DISABLED and apply it. 2015-07-24 00:23:29 +00:00
lldb-enumerations.h Added support for thread local variables on all Apple OS variants. 2016-07-01 17:17:23 +00:00
lldb-forward.h Add MemoryRegionInfo to SB API 2016-06-23 08:35:37 +00:00
lldb-private-defines.h Add -Wimplicit-fallthrough command line option to clang in 2016-02-16 04:14:33 +00:00
lldb-private-enumerations.h Backend support for top-level Clang epxressions 2016-03-22 21:05:51 +00:00
lldb-private-forward.h Refactor Unix signals. 2015-07-14 01:09:28 +00:00
lldb-private-interfaces.h Change over the broadcaster/listener process to hold shared or weak pointers 2016-03-07 21:50:25 +00:00
lldb-private-types.h Certain hardware architectures have registers of 256 bits in size 2016-03-10 00:14:29 +00:00
lldb-private.h Add -Wimplicit-fallthrough command line option to clang in 2016-02-16 04:14:33 +00:00
lldb-public.h
lldb-types.h Rename clang_type_t to opaque_compiler_type_t. 2015-09-22 17:04:24 +00:00
lldb-versioning.h Fix a few errors found when building lldb with newer versions of clang. 2013-10-05 02:52:22 +00:00