1 //===-- SBLanguageRuntime.cpp ---------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #include "lldb/API/SBLanguageRuntime.h" 10 #include "lldb/Target/Language.h" 11 #include "lldb/Utility/Instrumentation.h" 12 13 using namespace lldb; 14 using namespace lldb_private; 15 16 lldb::LanguageType 17 SBLanguageRuntime::GetLanguageTypeFromString(const char *string) { 18 LLDB_INSTRUMENT_VA(string); 19 20 return Language::GetLanguageTypeFromString(llvm::StringRef(string)); 21 } 22 23 const char * 24 SBLanguageRuntime::GetNameForLanguageType(lldb::LanguageType language) { 25 LLDB_INSTRUMENT_VA(language); 26 27 return Language::GetNameForLanguageType(language); 28 } 29 30 bool SBLanguageRuntime::LanguageIsCPlusPlus(lldb::LanguageType language) { 31 return Language::LanguageIsCPlusPlus(language); 32 } 33 34 bool SBLanguageRuntime::LanguageIsObjC(lldb::LanguageType language) { 35 return Language::LanguageIsObjC(language); 36 } 37 38 bool SBLanguageRuntime::LanguageIsCFamily(lldb::LanguageType language) { 39 return Language::LanguageIsCFamily(language); 40 } 41 42 bool SBLanguageRuntime::SupportsExceptionBreakpointsOnThrow( 43 lldb::LanguageType language) { 44 if (Language *lang_plugin = Language::FindPlugin(language)) 45 return lang_plugin->SupportsExceptionBreakpointsOnThrow(); 46 return false; 47 } 48 49 bool SBLanguageRuntime::SupportsExceptionBreakpointsOnCatch( 50 lldb::LanguageType language) { 51 if (Language *lang_plugin = Language::FindPlugin(language)) 52 return lang_plugin->SupportsExceptionBreakpointsOnCatch(); 53 return false; 54 } 55 56 const char * 57 SBLanguageRuntime::GetThrowKeywordForLanguage(lldb::LanguageType language) { 58 if (Language *lang_plugin = Language::FindPlugin(language)) 59 return ConstString(lang_plugin->GetThrowKeyword()).AsCString(); 60 return nullptr; 61 } 62 63 const char * 64 SBLanguageRuntime::GetCatchKeywordForLanguage(lldb::LanguageType language) { 65 if (Language *lang_plugin = Language::FindPlugin(language)) 66 return ConstString(lang_plugin->GetCatchKeyword()).AsCString(); 67 return nullptr; 68 } 69