diff options
author | Dawn Perchik <dawn@burble.org> | 2015-07-21 22:05:07 +0000 |
---|---|---|
committer | Dawn Perchik <dawn@burble.org> | 2015-07-21 22:05:07 +0000 |
commit | 23b1decbe763783c630763c0ae9b7b20773131c8 (patch) | |
tree | fdd11d22d8a0ab885562f2a07d7aa9720293bc19 /lldb/source/Target/LanguageRuntime.cpp | |
parent | f836c89c4953d9ca5e390b41e0ebc84c903a46c0 (diff) | |
download | bcm5719-llvm-23b1decbe763783c630763c0ae9b7b20773131c8.tar.gz bcm5719-llvm-23b1decbe763783c630763c0ae9b7b20773131c8.zip |
Add support for specifying a language to use when parsing breakpoints.
Target and breakpoints options were added:
breakpoint set --language lang --name func
settings set target.language pascal
These specify the Language to use when interpreting the breakpoint's
expression (note: currently only implemented for breakpoints on
identifiers). If the breakpoint language is not set, the target.language
setting is used.
This support is required by Pascal, for example, to set breakpoint at 'ns.foo'
for function 'foo' in namespace 'ns'.
Tests on the language were also added to Module::PrepareForFunctionNameLookup
for efficiency.
Reviewed by: clayborg
Subscribers: jingham, lldb-commits
Differential Revision: http://reviews.llvm.org/D11119
llvm-svn: 242844
Diffstat (limited to 'lldb/source/Target/LanguageRuntime.cpp')
-rw-r--r-- | lldb/source/Target/LanguageRuntime.cpp | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/lldb/source/Target/LanguageRuntime.cpp b/lldb/source/Target/LanguageRuntime.cpp index 9c7b441d4c5..1bec2063ad0 100644 --- a/lldb/source/Target/LanguageRuntime.cpp +++ b/lldb/source/Target/LanguageRuntime.cpp @@ -371,7 +371,8 @@ struct language_name_pair language_names[] = { "renderscript", eLanguageTypeExtRenderScript}, // Now synonyms, in arbitrary order { "objc", eLanguageTypeObjC }, - { "objc++", eLanguageTypeObjC_plus_plus } + { "objc++", eLanguageTypeObjC_plus_plus }, + { "pascal", eLanguageTypePascal83 } }; static uint32_t num_languages = sizeof(language_names) / sizeof (struct language_name_pair); @@ -420,6 +421,46 @@ LanguageRuntime::LanguageIsCPlusPlus (LanguageType language) } } +bool +LanguageRuntime::LanguageIsObjC (LanguageType language) +{ + switch (language) + { + case eLanguageTypeObjC: + case eLanguageTypeObjC_plus_plus: + return true; + default: + return false; + } +} + +bool +LanguageRuntime::LanguageIsC (LanguageType language) +{ + switch (language) + { + case eLanguageTypeC: + case eLanguageTypeC89: + case eLanguageTypeC99: + case eLanguageTypeC11: + return true; + default: + return false; + } +} + +bool +LanguageRuntime::LanguageIsPascal (LanguageType language) +{ + switch (language) + { + case eLanguageTypePascal83: + return true; + default: + return false; + } +} + void LanguageRuntime::InitializeCommands (CommandObject* parent) { |