forked from OSchip/llvm-project
Move things from the LanguageRuntime that obviously belong in the new Language plugin instead.
llvm-svn: 246611
This commit is contained in:
parent
bb0cef6e9c
commit
0e0984eebb
|
@ -42,6 +42,30 @@ namespace lldb_private {
|
||||||
virtual lldb::TypeCategoryImplSP
|
virtual lldb::TypeCategoryImplSP
|
||||||
GetFormatters ();
|
GetFormatters ();
|
||||||
|
|
||||||
|
// These are accessors for general information about the Languages lldb knows about:
|
||||||
|
|
||||||
|
static lldb::LanguageType
|
||||||
|
GetLanguageTypeFromString (const char *string);
|
||||||
|
|
||||||
|
static const char *
|
||||||
|
GetNameForLanguageType (lldb::LanguageType language);
|
||||||
|
|
||||||
|
static void
|
||||||
|
PrintAllLanguages (Stream &s, const char *prefix, const char *suffix);
|
||||||
|
|
||||||
|
static bool
|
||||||
|
LanguageIsCPlusPlus (lldb::LanguageType language);
|
||||||
|
|
||||||
|
static bool
|
||||||
|
LanguageIsObjC (lldb::LanguageType language);
|
||||||
|
|
||||||
|
static bool
|
||||||
|
LanguageIsC (lldb::LanguageType language);
|
||||||
|
|
||||||
|
static bool
|
||||||
|
LanguageIsPascal (lldb::LanguageType language);
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
// Classes that inherit from Language can see and modify these
|
// Classes that inherit from Language can see and modify these
|
||||||
|
|
|
@ -92,28 +92,6 @@ public:
|
||||||
CreateExceptionPrecondition (lldb::LanguageType language,
|
CreateExceptionPrecondition (lldb::LanguageType language,
|
||||||
bool catch_bp,
|
bool catch_bp,
|
||||||
bool throw_bp);
|
bool throw_bp);
|
||||||
|
|
||||||
static lldb::LanguageType
|
|
||||||
GetLanguageTypeFromString (const char *string);
|
|
||||||
|
|
||||||
static const char *
|
|
||||||
GetNameForLanguageType (lldb::LanguageType language);
|
|
||||||
|
|
||||||
static void
|
|
||||||
PrintAllLanguages (Stream &s, const char *prefix, const char *suffix);
|
|
||||||
|
|
||||||
static bool
|
|
||||||
LanguageIsCPlusPlus (lldb::LanguageType language);
|
|
||||||
|
|
||||||
static bool
|
|
||||||
LanguageIsObjC (lldb::LanguageType language);
|
|
||||||
|
|
||||||
static bool
|
|
||||||
LanguageIsC (lldb::LanguageType language);
|
|
||||||
|
|
||||||
static bool
|
|
||||||
LanguageIsPascal (lldb::LanguageType language);
|
|
||||||
|
|
||||||
Process *
|
Process *
|
||||||
GetProcess()
|
GetProcess()
|
||||||
{
|
{
|
||||||
|
|
|
@ -421,7 +421,7 @@ namespace lldb {
|
||||||
eLanguageTypeFortran03 = 0x0022, ///< ISO Fortran 2003.
|
eLanguageTypeFortran03 = 0x0022, ///< ISO Fortran 2003.
|
||||||
eLanguageTypeFortran08 = 0x0023, ///< ISO Fortran 2008.
|
eLanguageTypeFortran08 = 0x0023, ///< ISO Fortran 2008.
|
||||||
// Vendor Extensions
|
// Vendor Extensions
|
||||||
// Note: LanguageRuntime::GetNameForLanguageType
|
// Note: Language::GetNameForLanguageType
|
||||||
// assumes these can be used as indexes into array language_names, and
|
// assumes these can be used as indexes into array language_names, and
|
||||||
// Language::SetLanguageFromCString and Language::AsCString
|
// Language::SetLanguageFromCString and Language::AsCString
|
||||||
// assume these can be used as indexes into array g_languages.
|
// assume these can be used as indexes into array g_languages.
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "lldb/API/SBLanguageRuntime.h"
|
#include "lldb/API/SBLanguageRuntime.h"
|
||||||
#include "lldb/Target/LanguageRuntime.h"
|
#include "lldb/Target/Language.h"
|
||||||
|
|
||||||
using namespace lldb;
|
using namespace lldb;
|
||||||
using namespace lldb_private;
|
using namespace lldb_private;
|
||||||
|
@ -16,11 +16,11 @@ using namespace lldb_private;
|
||||||
lldb::LanguageType
|
lldb::LanguageType
|
||||||
SBLanguageRuntime::GetLanguageTypeFromString (const char *string)
|
SBLanguageRuntime::GetLanguageTypeFromString (const char *string)
|
||||||
{
|
{
|
||||||
return LanguageRuntime::GetLanguageTypeFromString(string);
|
return Language::GetLanguageTypeFromString(string);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
SBLanguageRuntime::GetNameForLanguageType (lldb::LanguageType language)
|
SBLanguageRuntime::GetNameForLanguageType (lldb::LanguageType language)
|
||||||
{
|
{
|
||||||
return LanguageRuntime::GetNameForLanguageType(language);
|
return Language::GetNameForLanguageType(language);
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,6 +52,7 @@
|
||||||
#include "lldb/Symbol/SymbolVendor.h"
|
#include "lldb/Symbol/SymbolVendor.h"
|
||||||
#include "lldb/Symbol/VariableList.h"
|
#include "lldb/Symbol/VariableList.h"
|
||||||
#include "lldb/Target/ABI.h"
|
#include "lldb/Target/ABI.h"
|
||||||
|
#include "lldb/Target/Language.h"
|
||||||
#include "lldb/Target/LanguageRuntime.h"
|
#include "lldb/Target/LanguageRuntime.h"
|
||||||
#include "lldb/Target/ObjCLanguageRuntime.h"
|
#include "lldb/Target/ObjCLanguageRuntime.h"
|
||||||
#include "lldb/Target/Process.h"
|
#include "lldb/Target/Process.h"
|
||||||
|
@ -1133,7 +1134,7 @@ SBTarget::BreakpointCreateForException (lldb::LanguageType language,
|
||||||
if (log)
|
if (log)
|
||||||
log->Printf ("SBTarget(%p)::BreakpointCreateByRegex (Language: %s, catch: %s throw: %s) => SBBreakpoint(%p)",
|
log->Printf ("SBTarget(%p)::BreakpointCreateByRegex (Language: %s, catch: %s throw: %s) => SBBreakpoint(%p)",
|
||||||
static_cast<void*>(target_sp.get()),
|
static_cast<void*>(target_sp.get()),
|
||||||
LanguageRuntime::GetNameForLanguageType(language),
|
Language::GetNameForLanguageType(language),
|
||||||
catch_bp ? "on" : "off", throw_bp ? "on" : "off",
|
catch_bp ? "on" : "off", throw_bp ? "on" : "off",
|
||||||
static_cast<void*>(sb_bp.get()));
|
static_cast<void*>(sb_bp.get()));
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#include "lldb/Core/StreamString.h"
|
#include "lldb/Core/StreamString.h"
|
||||||
#include "lldb/Interpreter/CommandInterpreter.h"
|
#include "lldb/Interpreter/CommandInterpreter.h"
|
||||||
#include "lldb/Interpreter/CommandReturnObject.h"
|
#include "lldb/Interpreter/CommandReturnObject.h"
|
||||||
#include "lldb/Target/LanguageRuntime.h"
|
#include "lldb/Target/Language.h"
|
||||||
#include "lldb/Target/Target.h"
|
#include "lldb/Target/Target.h"
|
||||||
#include "lldb/Interpreter/CommandCompletions.h"
|
#include "lldb/Interpreter/CommandCompletions.h"
|
||||||
#include "lldb/Target/StackFrame.h"
|
#include "lldb/Target/StackFrame.h"
|
||||||
|
@ -165,7 +165,7 @@ public:
|
||||||
|
|
||||||
case 'E':
|
case 'E':
|
||||||
{
|
{
|
||||||
LanguageType language = LanguageRuntime::GetLanguageTypeFromString (option_arg);
|
LanguageType language = Language::GetLanguageTypeFromString (option_arg);
|
||||||
|
|
||||||
switch (language)
|
switch (language)
|
||||||
{
|
{
|
||||||
|
@ -251,7 +251,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
case 'L':
|
case 'L':
|
||||||
m_language = LanguageRuntime::GetLanguageTypeFromString (option_arg);
|
m_language = Language::GetLanguageTypeFromString (option_arg);
|
||||||
if (m_language == eLanguageTypeUnknown)
|
if (m_language == eLanguageTypeUnknown)
|
||||||
error.SetErrorStringWithFormat ("Unknown language type: '%s' for breakpoint", option_arg);
|
error.SetErrorStringWithFormat ("Unknown language type: '%s' for breakpoint", option_arg);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include "lldb/Core/Debugger.h"
|
#include "lldb/Core/Debugger.h"
|
||||||
#include "lldb/Interpreter/CommandInterpreter.h"
|
#include "lldb/Interpreter/CommandInterpreter.h"
|
||||||
#include "lldb/Interpreter/CommandReturnObject.h"
|
#include "lldb/Interpreter/CommandReturnObject.h"
|
||||||
|
#include "lldb/Target/Language.h"
|
||||||
#include "lldb/Target/ObjCLanguageRuntime.h"
|
#include "lldb/Target/ObjCLanguageRuntime.h"
|
||||||
#include "lldb/Symbol/ObjectFile.h"
|
#include "lldb/Symbol/ObjectFile.h"
|
||||||
#include "lldb/Symbol/Variable.h"
|
#include "lldb/Symbol/Variable.h"
|
||||||
|
@ -86,7 +87,7 @@ CommandObjectExpression::CommandOptions::SetOptionValue (CommandInterpreter &int
|
||||||
switch (short_option)
|
switch (short_option)
|
||||||
{
|
{
|
||||||
case 'l':
|
case 'l':
|
||||||
language = LanguageRuntime::GetLanguageTypeFromString (option_arg);
|
language = Language::GetLanguageTypeFromString (option_arg);
|
||||||
if (language == eLanguageTypeUnknown)
|
if (language == eLanguageTypeUnknown)
|
||||||
error.SetErrorStringWithFormat ("unknown language type: '%s' for expression", option_arg);
|
error.SetErrorStringWithFormat ("unknown language type: '%s' for expression", option_arg);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include "lldb/Interpreter/CommandInterpreter.h"
|
#include "lldb/Interpreter/CommandInterpreter.h"
|
||||||
#include "lldb/Interpreter/CommandReturnObject.h"
|
#include "lldb/Interpreter/CommandReturnObject.h"
|
||||||
|
|
||||||
|
#include "lldb/Target/Language.h"
|
||||||
#include "lldb/Target/LanguageRuntime.h"
|
#include "lldb/Target/LanguageRuntime.h"
|
||||||
|
|
||||||
using namespace lldb;
|
using namespace lldb;
|
||||||
|
@ -36,7 +37,7 @@ CommandObjectLanguage::GenerateHelpText (Stream &output_stream) {
|
||||||
|
|
||||||
output_stream << "\nlanguage name can be one of the following:\n";
|
output_stream << "\nlanguage name can be one of the following:\n";
|
||||||
|
|
||||||
LanguageRuntime::PrintAllLanguages(output_stream, " ", "\n");
|
Language::PrintAllLanguages(output_stream, " ", "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
CommandObjectLanguage::~CommandObjectLanguage ()
|
CommandObjectLanguage::~CommandObjectLanguage ()
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
#include "lldb/Symbol/Symbol.h"
|
#include "lldb/Symbol/Symbol.h"
|
||||||
#include "lldb/Symbol/VariableList.h"
|
#include "lldb/Symbol/VariableList.h"
|
||||||
#include "lldb/Target/ExecutionContext.h"
|
#include "lldb/Target/ExecutionContext.h"
|
||||||
#include "lldb/Target/LanguageRuntime.h"
|
#include "lldb/Target/Language.h"
|
||||||
#include "lldb/Target/Process.h"
|
#include "lldb/Target/Process.h"
|
||||||
#include "lldb/Target/RegisterContext.h"
|
#include "lldb/Target/RegisterContext.h"
|
||||||
#include "lldb/Target/SectionLoadList.h"
|
#include "lldb/Target/SectionLoadList.h"
|
||||||
|
@ -1529,7 +1529,7 @@ FormatEntity::Format (const Entry &entry,
|
||||||
CompileUnit *cu = sc->comp_unit;
|
CompileUnit *cu = sc->comp_unit;
|
||||||
if (cu)
|
if (cu)
|
||||||
{
|
{
|
||||||
const char *lang_name = LanguageRuntime::GetNameForLanguageType(cu->GetLanguage());
|
const char *lang_name = Language::GetNameForLanguageType(cu->GetLanguage());
|
||||||
if (lang_name)
|
if (lang_name)
|
||||||
{
|
{
|
||||||
s.PutCString(lang_name);
|
s.PutCString(lang_name);
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "lldb/Symbol/SymbolContext.h"
|
#include "lldb/Symbol/SymbolContext.h"
|
||||||
#include "lldb/Symbol/SymbolVendor.h"
|
#include "lldb/Symbol/SymbolVendor.h"
|
||||||
#include "lldb/Target/CPPLanguageRuntime.h"
|
#include "lldb/Target/CPPLanguageRuntime.h"
|
||||||
|
#include "lldb/Target/Language.h"
|
||||||
#include "lldb/Target/ObjCLanguageRuntime.h"
|
#include "lldb/Target/ObjCLanguageRuntime.h"
|
||||||
#include "lldb/Target/Process.h"
|
#include "lldb/Target/Process.h"
|
||||||
#include "lldb/Target/SectionLoadList.h"
|
#include "lldb/Target/SectionLoadList.h"
|
||||||
|
@ -1783,17 +1784,17 @@ Module::PrepareForFunctionNameLookup (const ConstString &name,
|
||||||
if (CPPLanguageRuntime::IsCPPMangledName (name_cstr))
|
if (CPPLanguageRuntime::IsCPPMangledName (name_cstr))
|
||||||
lookup_name_type_mask = eFunctionNameTypeFull;
|
lookup_name_type_mask = eFunctionNameTypeFull;
|
||||||
else if ((language == eLanguageTypeUnknown ||
|
else if ((language == eLanguageTypeUnknown ||
|
||||||
LanguageRuntime::LanguageIsObjC(language)) &&
|
Language::LanguageIsObjC(language)) &&
|
||||||
ObjCLanguageRuntime::IsPossibleObjCMethodName (name_cstr))
|
ObjCLanguageRuntime::IsPossibleObjCMethodName (name_cstr))
|
||||||
lookup_name_type_mask = eFunctionNameTypeFull;
|
lookup_name_type_mask = eFunctionNameTypeFull;
|
||||||
else if (LanguageRuntime::LanguageIsC(language))
|
else if (Language::LanguageIsC(language))
|
||||||
{
|
{
|
||||||
lookup_name_type_mask = eFunctionNameTypeFull;
|
lookup_name_type_mask = eFunctionNameTypeFull;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((language == eLanguageTypeUnknown ||
|
if ((language == eLanguageTypeUnknown ||
|
||||||
LanguageRuntime::LanguageIsObjC(language)) &&
|
Language::LanguageIsObjC(language)) &&
|
||||||
ObjCLanguageRuntime::IsPossibleObjCSelector(name_cstr))
|
ObjCLanguageRuntime::IsPossibleObjCSelector(name_cstr))
|
||||||
lookup_name_type_mask |= eFunctionNameTypeSelector;
|
lookup_name_type_mask |= eFunctionNameTypeSelector;
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,8 @@
|
||||||
#include "lldb/Target/Process.h"
|
#include "lldb/Target/Process.h"
|
||||||
#include "lldb/Target/Target.h"
|
#include "lldb/Target/Target.h"
|
||||||
|
|
||||||
|
#include "lldb/Target/Language.h"
|
||||||
|
|
||||||
#include "lldb/Interpreter/CommandInterpreter.h"
|
#include "lldb/Interpreter/CommandInterpreter.h"
|
||||||
#include "lldb/Interpreter/CommandReturnObject.h"
|
#include "lldb/Interpreter/CommandReturnObject.h"
|
||||||
|
|
||||||
|
@ -848,7 +850,7 @@ LanguageTypeHelpTextCallback ()
|
||||||
StreamString sstr;
|
StreamString sstr;
|
||||||
sstr << "One of the following languages:\n";
|
sstr << "One of the following languages:\n";
|
||||||
|
|
||||||
LanguageRuntime::PrintAllLanguages(sstr, " ", "\n");
|
Language::PrintAllLanguages(sstr, " ", "\n");
|
||||||
|
|
||||||
sstr.Flush();
|
sstr.Flush();
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
#include "lldb/Core/Stream.h"
|
#include "lldb/Core/Stream.h"
|
||||||
#include "lldb/DataFormatters/FormatManager.h"
|
#include "lldb/DataFormatters/FormatManager.h"
|
||||||
#include "lldb/Interpreter/Args.h"
|
#include "lldb/Interpreter/Args.h"
|
||||||
#include "lldb/Target/LanguageRuntime.h"
|
#include "lldb/Target/Language.h"
|
||||||
|
|
||||||
using namespace lldb;
|
using namespace lldb;
|
||||||
using namespace lldb_private;
|
using namespace lldb_private;
|
||||||
|
@ -30,7 +30,7 @@ OptionValueLanguage::DumpValue (const ExecutionContext *exe_ctx, Stream &strm, u
|
||||||
{
|
{
|
||||||
if (dump_mask & eDumpOptionType)
|
if (dump_mask & eDumpOptionType)
|
||||||
strm.PutCString (" = ");
|
strm.PutCString (" = ");
|
||||||
strm.PutCString (LanguageRuntime::GetNameForLanguageType(m_current_value));
|
strm.PutCString (Language::GetNameForLanguageType(m_current_value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ OptionValueLanguage::SetValueFromString (llvm::StringRef value, VarSetOperationT
|
||||||
case eVarSetOperationAssign:
|
case eVarSetOperationAssign:
|
||||||
{
|
{
|
||||||
ConstString lang_name(value.trim());
|
ConstString lang_name(value.trim());
|
||||||
LanguageType new_type = LanguageRuntime::GetLanguageTypeFromString(lang_name.GetCString());
|
LanguageType new_type = Language::GetLanguageTypeFromString(lang_name.GetCString());
|
||||||
if (new_type)
|
if (new_type)
|
||||||
{
|
{
|
||||||
m_value_was_set = true;
|
m_value_was_set = true;
|
||||||
|
@ -59,7 +59,7 @@ OptionValueLanguage::SetValueFromString (llvm::StringRef value, VarSetOperationT
|
||||||
StreamString error_strm;
|
StreamString error_strm;
|
||||||
error_strm.Printf("invalid language type '%s', ", value.str().c_str());
|
error_strm.Printf("invalid language type '%s', ", value.str().c_str());
|
||||||
error_strm.Printf("valid values are:\n");
|
error_strm.Printf("valid values are:\n");
|
||||||
LanguageRuntime::PrintAllLanguages(error_strm, " ", "\n");
|
Language::PrintAllLanguages(error_strm, " ", "\n");
|
||||||
error.SetErrorString(error_strm.GetData());
|
error.SetErrorString(error_strm.GetData());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
#include "lldb/Host/StringConvert.h"
|
#include "lldb/Host/StringConvert.h"
|
||||||
#include "lldb/Interpreter/CommandInterpreter.h"
|
#include "lldb/Interpreter/CommandInterpreter.h"
|
||||||
#include "lldb/Interpreter/OptionValues.h"
|
#include "lldb/Interpreter/OptionValues.h"
|
||||||
#include "lldb/Target/LanguageRuntime.h"
|
#include "lldb/Target/Language.h"
|
||||||
|
|
||||||
using namespace lldb;
|
using namespace lldb;
|
||||||
using namespace lldb_private;
|
using namespace lldb_private;
|
||||||
|
@ -129,7 +129,7 @@ Property::Property (const PropertyDefinition &definition) :
|
||||||
{
|
{
|
||||||
LanguageType new_lang = eLanguageTypeUnknown;
|
LanguageType new_lang = eLanguageTypeUnknown;
|
||||||
if (definition.default_cstr_value)
|
if (definition.default_cstr_value)
|
||||||
LanguageRuntime::GetLanguageTypeFromString(definition.default_cstr_value);
|
Language::GetLanguageTypeFromString(definition.default_cstr_value);
|
||||||
else
|
else
|
||||||
new_lang = (LanguageType)definition.default_uint_value;
|
new_lang = (LanguageType)definition.default_uint_value;
|
||||||
m_value_sp.reset (new OptionValueLanguage(new_lang));
|
m_value_sp.reset (new OptionValueLanguage(new_lang));
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include "lldb/Symbol/Function.h"
|
#include "lldb/Symbol/Function.h"
|
||||||
#include "lldb/Symbol/ObjectFile.h"
|
#include "lldb/Symbol/ObjectFile.h"
|
||||||
#include "lldb/Symbol/TypeList.h"
|
#include "lldb/Symbol/TypeList.h"
|
||||||
|
#include "lldb/Target/Language.h"
|
||||||
#include "lldb/Target/ObjCLanguageRuntime.h"
|
#include "lldb/Target/ObjCLanguageRuntime.h"
|
||||||
|
|
||||||
#include "clang/AST/DeclCXX.h"
|
#include "clang/AST/DeclCXX.h"
|
||||||
|
@ -2252,7 +2253,7 @@ DWARFASTParserClang::ParseFunctionFromDWARF (const SymbolContext& sc,
|
||||||
if (mangled)
|
if (mangled)
|
||||||
func_name.SetValue(ConstString(mangled), true);
|
func_name.SetValue(ConstString(mangled), true);
|
||||||
else if (die.GetParent().Tag() == DW_TAG_compile_unit &&
|
else if (die.GetParent().Tag() == DW_TAG_compile_unit &&
|
||||||
LanguageRuntime::LanguageIsCPlusPlus(die.GetLanguage()) &&
|
Language::LanguageIsCPlusPlus(die.GetLanguage()) &&
|
||||||
name && strcmp(name, "main") != 0)
|
name && strcmp(name, "main") != 0)
|
||||||
{
|
{
|
||||||
// If the mangled name is not present in the DWARF, generate the demangled name
|
// If the mangled name is not present in the DWARF, generate the demangled name
|
||||||
|
|
|
@ -57,6 +57,8 @@
|
||||||
#include "lldb/Target/ObjCLanguageRuntime.h"
|
#include "lldb/Target/ObjCLanguageRuntime.h"
|
||||||
#include "lldb/Target/CPPLanguageRuntime.h"
|
#include "lldb/Target/CPPLanguageRuntime.h"
|
||||||
|
|
||||||
|
#include "lldb/Target/Language.h"
|
||||||
|
|
||||||
#include "DWARFASTParser.h"
|
#include "DWARFASTParser.h"
|
||||||
#include "DWARFCompileUnit.h"
|
#include "DWARFCompileUnit.h"
|
||||||
#include "DWARFDebugAbbrev.h"
|
#include "DWARFDebugAbbrev.h"
|
||||||
|
@ -3914,7 +3916,7 @@ SymbolFileDWARF::ParseVariableDIE
|
||||||
// "(int) A::B::j = 4". If the compiler does not emit a linkage name, we should be able
|
// "(int) A::B::j = 4". If the compiler does not emit a linkage name, we should be able
|
||||||
// to generate a fully qualified name from the declaration context.
|
// to generate a fully qualified name from the declaration context.
|
||||||
if (parent_tag == DW_TAG_compile_unit &&
|
if (parent_tag == DW_TAG_compile_unit &&
|
||||||
LanguageRuntime::LanguageIsCPlusPlus(die.GetLanguage()))
|
Language::LanguageIsCPlusPlus(die.GetLanguage()))
|
||||||
{
|
{
|
||||||
DWARFDeclContext decl_ctx;
|
DWARFDeclContext decl_ctx;
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
#include "lldb/Symbol/LineTable.h"
|
#include "lldb/Symbol/LineTable.h"
|
||||||
#include "lldb/Symbol/SymbolVendor.h"
|
#include "lldb/Symbol/SymbolVendor.h"
|
||||||
#include "lldb/Symbol/VariableList.h"
|
#include "lldb/Symbol/VariableList.h"
|
||||||
#include "lldb/Target/LanguageRuntime.h"
|
#include "lldb/Target/Language.h"
|
||||||
|
|
||||||
using namespace lldb;
|
using namespace lldb;
|
||||||
using namespace lldb_private;
|
using namespace lldb_private;
|
||||||
|
@ -87,7 +87,7 @@ CompileUnit::DumpSymbolContext(Stream *s)
|
||||||
void
|
void
|
||||||
CompileUnit::GetDescription(Stream *s, lldb::DescriptionLevel level) const
|
CompileUnit::GetDescription(Stream *s, lldb::DescriptionLevel level) const
|
||||||
{
|
{
|
||||||
const char* language = LanguageRuntime::GetNameForLanguageType(m_language);
|
const char* language = Language::GetNameForLanguageType(m_language);
|
||||||
*s << "id = " << (const UserID&)*this << ", file = \"" << (const FileSpec&)*this << "\", language = \"" << language << '"';
|
*s << "id = " << (const UserID&)*this << ", file = \"" << (const FileSpec&)*this << "\", language = \"" << language << '"';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ CompileUnit::GetDescription(Stream *s, lldb::DescriptionLevel level) const
|
||||||
void
|
void
|
||||||
CompileUnit::Dump(Stream *s, bool show_context) const
|
CompileUnit::Dump(Stream *s, bool show_context) const
|
||||||
{
|
{
|
||||||
const char* language = LanguageRuntime::GetNameForLanguageType(m_language);
|
const char* language = Language::GetNameForLanguageType(m_language);
|
||||||
|
|
||||||
s->Printf("%p: ", static_cast<const void*>(this));
|
s->Printf("%p: ", static_cast<const void*>(this));
|
||||||
s->Indent();
|
s->Indent();
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
|
|
||||||
#include "lldb/Host/Mutex.h"
|
#include "lldb/Host/Mutex.h"
|
||||||
#include "lldb/Core/PluginManager.h"
|
#include "lldb/Core/PluginManager.h"
|
||||||
|
#include "lldb/Core/Stream.h"
|
||||||
|
|
||||||
using namespace lldb;
|
using namespace lldb;
|
||||||
using namespace lldb_private;
|
using namespace lldb_private;
|
||||||
|
@ -93,6 +94,146 @@ Language::GetFormatters ()
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct language_name_pair {
|
||||||
|
const char *name;
|
||||||
|
LanguageType type;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct language_name_pair language_names[] =
|
||||||
|
{
|
||||||
|
// To allow GetNameForLanguageType to be a simple array lookup, the first
|
||||||
|
// part of this array must follow enum LanguageType exactly.
|
||||||
|
{ "unknown", eLanguageTypeUnknown },
|
||||||
|
{ "c89", eLanguageTypeC89 },
|
||||||
|
{ "c", eLanguageTypeC },
|
||||||
|
{ "ada83", eLanguageTypeAda83 },
|
||||||
|
{ "c++", eLanguageTypeC_plus_plus },
|
||||||
|
{ "cobol74", eLanguageTypeCobol74 },
|
||||||
|
{ "cobol85", eLanguageTypeCobol85 },
|
||||||
|
{ "fortran77", eLanguageTypeFortran77 },
|
||||||
|
{ "fortran90", eLanguageTypeFortran90 },
|
||||||
|
{ "pascal83", eLanguageTypePascal83 },
|
||||||
|
{ "modula2", eLanguageTypeModula2 },
|
||||||
|
{ "java", eLanguageTypeJava },
|
||||||
|
{ "c99", eLanguageTypeC99 },
|
||||||
|
{ "ada95", eLanguageTypeAda95 },
|
||||||
|
{ "fortran95", eLanguageTypeFortran95 },
|
||||||
|
{ "pli", eLanguageTypePLI },
|
||||||
|
{ "objective-c", eLanguageTypeObjC },
|
||||||
|
{ "objective-c++", eLanguageTypeObjC_plus_plus },
|
||||||
|
{ "upc", eLanguageTypeUPC },
|
||||||
|
{ "d", eLanguageTypeD },
|
||||||
|
{ "python", eLanguageTypePython },
|
||||||
|
{ "opencl", eLanguageTypeOpenCL },
|
||||||
|
{ "go", eLanguageTypeGo },
|
||||||
|
{ "modula3", eLanguageTypeModula3 },
|
||||||
|
{ "haskell", eLanguageTypeHaskell },
|
||||||
|
{ "c++03", eLanguageTypeC_plus_plus_03 },
|
||||||
|
{ "c++11", eLanguageTypeC_plus_plus_11 },
|
||||||
|
{ "ocaml", eLanguageTypeOCaml },
|
||||||
|
{ "rust", eLanguageTypeRust },
|
||||||
|
{ "c11", eLanguageTypeC11 },
|
||||||
|
{ "swift", eLanguageTypeSwift },
|
||||||
|
{ "julia", eLanguageTypeJulia },
|
||||||
|
{ "dylan", eLanguageTypeDylan },
|
||||||
|
{ "c++14", eLanguageTypeC_plus_plus_14 },
|
||||||
|
{ "fortran03", eLanguageTypeFortran03 },
|
||||||
|
{ "fortran08", eLanguageTypeFortran08 },
|
||||||
|
// Vendor Extensions
|
||||||
|
{ "mipsassem", eLanguageTypeMipsAssembler },
|
||||||
|
{ "renderscript", eLanguageTypeExtRenderScript},
|
||||||
|
// Now synonyms, in arbitrary order
|
||||||
|
{ "objc", eLanguageTypeObjC },
|
||||||
|
{ "objc++", eLanguageTypeObjC_plus_plus },
|
||||||
|
{ "pascal", eLanguageTypePascal83 }
|
||||||
|
};
|
||||||
|
|
||||||
|
static uint32_t num_languages = sizeof(language_names) / sizeof (struct language_name_pair);
|
||||||
|
|
||||||
|
LanguageType
|
||||||
|
Language::GetLanguageTypeFromString (const char *string)
|
||||||
|
{
|
||||||
|
for (uint32_t i = 0; i < num_languages; i++)
|
||||||
|
{
|
||||||
|
if (strcasecmp (language_names[i].name, string) == 0)
|
||||||
|
return (LanguageType) language_names[i].type;
|
||||||
|
}
|
||||||
|
return eLanguageTypeUnknown;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *
|
||||||
|
Language::GetNameForLanguageType (LanguageType language)
|
||||||
|
{
|
||||||
|
if (language < num_languages)
|
||||||
|
return language_names[language].name;
|
||||||
|
else
|
||||||
|
return language_names[eLanguageTypeUnknown].name;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Language::PrintAllLanguages (Stream &s, const char *prefix, const char *suffix)
|
||||||
|
{
|
||||||
|
for (uint32_t i = 1; i < num_languages; i++)
|
||||||
|
{
|
||||||
|
s.Printf("%s%s%s", prefix, language_names[i].name, suffix);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
Language::LanguageIsCPlusPlus (LanguageType language)
|
||||||
|
{
|
||||||
|
switch (language)
|
||||||
|
{
|
||||||
|
case eLanguageTypeC_plus_plus:
|
||||||
|
case eLanguageTypeC_plus_plus_03:
|
||||||
|
case eLanguageTypeC_plus_plus_11:
|
||||||
|
case eLanguageTypeC_plus_plus_14:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
Language::LanguageIsObjC (LanguageType language)
|
||||||
|
{
|
||||||
|
switch (language)
|
||||||
|
{
|
||||||
|
case eLanguageTypeObjC:
|
||||||
|
case eLanguageTypeObjC_plus_plus:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
Language::LanguageIsC (LanguageType language)
|
||||||
|
{
|
||||||
|
switch (language)
|
||||||
|
{
|
||||||
|
case eLanguageTypeC:
|
||||||
|
case eLanguageTypeC89:
|
||||||
|
case eLanguageTypeC99:
|
||||||
|
case eLanguageTypeC11:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
Language::LanguageIsPascal (LanguageType language)
|
||||||
|
{
|
||||||
|
switch (language)
|
||||||
|
{
|
||||||
|
case eLanguageTypePascal83:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
// Constructor
|
// Constructor
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
|
@ -321,146 +321,6 @@ LanguageRuntime::CreateExceptionBreakpoint (Target &target,
|
||||||
return exc_breakpt_sp;
|
return exc_breakpt_sp;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct language_name_pair {
|
|
||||||
const char *name;
|
|
||||||
LanguageType type;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct language_name_pair language_names[] =
|
|
||||||
{
|
|
||||||
// To allow GetNameForLanguageType to be a simple array lookup, the first
|
|
||||||
// part of this array must follow enum LanguageType exactly.
|
|
||||||
{ "unknown", eLanguageTypeUnknown },
|
|
||||||
{ "c89", eLanguageTypeC89 },
|
|
||||||
{ "c", eLanguageTypeC },
|
|
||||||
{ "ada83", eLanguageTypeAda83 },
|
|
||||||
{ "c++", eLanguageTypeC_plus_plus },
|
|
||||||
{ "cobol74", eLanguageTypeCobol74 },
|
|
||||||
{ "cobol85", eLanguageTypeCobol85 },
|
|
||||||
{ "fortran77", eLanguageTypeFortran77 },
|
|
||||||
{ "fortran90", eLanguageTypeFortran90 },
|
|
||||||
{ "pascal83", eLanguageTypePascal83 },
|
|
||||||
{ "modula2", eLanguageTypeModula2 },
|
|
||||||
{ "java", eLanguageTypeJava },
|
|
||||||
{ "c99", eLanguageTypeC99 },
|
|
||||||
{ "ada95", eLanguageTypeAda95 },
|
|
||||||
{ "fortran95", eLanguageTypeFortran95 },
|
|
||||||
{ "pli", eLanguageTypePLI },
|
|
||||||
{ "objective-c", eLanguageTypeObjC },
|
|
||||||
{ "objective-c++", eLanguageTypeObjC_plus_plus },
|
|
||||||
{ "upc", eLanguageTypeUPC },
|
|
||||||
{ "d", eLanguageTypeD },
|
|
||||||
{ "python", eLanguageTypePython },
|
|
||||||
{ "opencl", eLanguageTypeOpenCL },
|
|
||||||
{ "go", eLanguageTypeGo },
|
|
||||||
{ "modula3", eLanguageTypeModula3 },
|
|
||||||
{ "haskell", eLanguageTypeHaskell },
|
|
||||||
{ "c++03", eLanguageTypeC_plus_plus_03 },
|
|
||||||
{ "c++11", eLanguageTypeC_plus_plus_11 },
|
|
||||||
{ "ocaml", eLanguageTypeOCaml },
|
|
||||||
{ "rust", eLanguageTypeRust },
|
|
||||||
{ "c11", eLanguageTypeC11 },
|
|
||||||
{ "swift", eLanguageTypeSwift },
|
|
||||||
{ "julia", eLanguageTypeJulia },
|
|
||||||
{ "dylan", eLanguageTypeDylan },
|
|
||||||
{ "c++14", eLanguageTypeC_plus_plus_14 },
|
|
||||||
{ "fortran03", eLanguageTypeFortran03 },
|
|
||||||
{ "fortran08", eLanguageTypeFortran08 },
|
|
||||||
// Vendor Extensions
|
|
||||||
{ "mipsassem", eLanguageTypeMipsAssembler },
|
|
||||||
{ "renderscript", eLanguageTypeExtRenderScript},
|
|
||||||
// Now synonyms, in arbitrary order
|
|
||||||
{ "objc", eLanguageTypeObjC },
|
|
||||||
{ "objc++", eLanguageTypeObjC_plus_plus },
|
|
||||||
{ "pascal", eLanguageTypePascal83 }
|
|
||||||
};
|
|
||||||
|
|
||||||
static uint32_t num_languages = sizeof(language_names) / sizeof (struct language_name_pair);
|
|
||||||
|
|
||||||
LanguageType
|
|
||||||
LanguageRuntime::GetLanguageTypeFromString (const char *string)
|
|
||||||
{
|
|
||||||
for (uint32_t i = 0; i < num_languages; i++)
|
|
||||||
{
|
|
||||||
if (strcasecmp (language_names[i].name, string) == 0)
|
|
||||||
return (LanguageType) language_names[i].type;
|
|
||||||
}
|
|
||||||
return eLanguageTypeUnknown;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *
|
|
||||||
LanguageRuntime::GetNameForLanguageType (LanguageType language)
|
|
||||||
{
|
|
||||||
if (language < num_languages)
|
|
||||||
return language_names[language].name;
|
|
||||||
else
|
|
||||||
return language_names[eLanguageTypeUnknown].name;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
LanguageRuntime::PrintAllLanguages (Stream &s, const char *prefix, const char *suffix)
|
|
||||||
{
|
|
||||||
for (uint32_t i = 1; i < num_languages; i++)
|
|
||||||
{
|
|
||||||
s.Printf("%s%s%s", prefix, language_names[i].name, suffix);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
LanguageRuntime::LanguageIsCPlusPlus (LanguageType language)
|
|
||||||
{
|
|
||||||
switch (language)
|
|
||||||
{
|
|
||||||
case eLanguageTypeC_plus_plus:
|
|
||||||
case eLanguageTypeC_plus_plus_03:
|
|
||||||
case eLanguageTypeC_plus_plus_11:
|
|
||||||
case eLanguageTypeC_plus_plus_14:
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
void
|
||||||
LanguageRuntime::InitializeCommands (CommandObject* parent)
|
LanguageRuntime::InitializeCommands (CommandObject* parent)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue