summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/LanguageRuntime.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Target/LanguageRuntime.cpp')
-rw-r--r--lldb/source/Target/LanguageRuntime.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/lldb/source/Target/LanguageRuntime.cpp b/lldb/source/Target/LanguageRuntime.cpp
index 0d67436a38e..09ecc2a9bc8 100644
--- a/lldb/source/Target/LanguageRuntime.cpp
+++ b/lldb/source/Target/LanguageRuntime.cpp
@@ -347,15 +347,20 @@ LanguageRuntime::CreateExceptionSearchFilter ()
}
lldb::LanguageType
-LanguageRuntime::GetLanguageForSymbolByName (Target &target, const char *symbol_name)
+LanguageRuntime::GuessLanguageForSymbolByName (Target &target, const char *symbol_name)
{
- // This is not the right way to do this. Different targets could have different ways of mangling names
- // from a given language. So we should ask the various LanguageRuntime plugin instances for this target
- // to recognize the name. But right now the plugin instances depend on the process, not the target.
- // That is unfortunate, because I want to use this for filtering breakpoints by language, and so I need to know
- // the "language for symbol-name" prior to running. So we'd have to make a "LanguageRuntimeTarget" and
- // "LanguageRuntimeProcess", and direct the questions that don't need a running process to the former, and that
- // do to the latter.
+ // We "guess" the language because we can't determine a symbol's language from it's name.
+ // For example, a Pascal symbol can be mangled using the C++ Itanium scheme, and defined
+ // in a compilation unit within the same module as other C++ units.
+ //
+ // In addition, different targets could have different ways of mangling names from a given
+ // language, likewise compilation units within those targets. It would help to be able to
+ // ask the various LanguageRuntime plugin instances for this target to recognize the name,
+ // but right now the plugin instances depend on the process, not the target. That is
+ // unfortunate, because to use this for filtering breakpoints by language, we need to know
+ // the "language for symbol-name" prior to running. So we'd have to make a
+ // "LanguageRuntimeTarget" and "LanguageRuntimeProcess", and direct the questions that don't
+ // need a running process to the former, and that do to the latter.
//
// That's more work than I want to do for this feature.
if (CPlusPlusLanguage::IsCPPMangledName (symbol_name))
OpenPOWER on IntegriCloud