diff options
-rw-r--r-- | lldb/include/lldb/Breakpoint/Breakpoint.h | 2 | ||||
-rw-r--r-- | lldb/include/lldb/Target/Language.h | 6 | ||||
-rw-r--r-- | lldb/include/lldb/Target/ObjCLanguageRuntime.h | 2 | ||||
-rw-r--r-- | lldb/source/Breakpoint/Breakpoint.cpp | 5 | ||||
-rw-r--r-- | lldb/source/Target/Language.cpp | 13 | ||||
-rw-r--r-- | lldb/source/Target/LanguageRuntime.cpp | 10 | ||||
-rw-r--r-- | lldb/source/Target/ObjCLanguageRuntime.cpp | 2 |
7 files changed, 32 insertions, 8 deletions
diff --git a/lldb/include/lldb/Breakpoint/Breakpoint.h b/lldb/include/lldb/Breakpoint/Breakpoint.h index 0e8af6552a4..7fdf06da393 100644 --- a/lldb/include/lldb/Breakpoint/Breakpoint.h +++ b/lldb/include/lldb/Breakpoint/Breakpoint.h @@ -163,7 +163,7 @@ public: ConfigurePrecondition(Args &options); virtual void - DescribePrecondition(Stream &stream, lldb::DescriptionLevel level); + GetDescription(Stream &stream, lldb::DescriptionLevel level); }; typedef std::shared_ptr<BreakpointPrecondition> BreakpointPreconditionSP; diff --git a/lldb/include/lldb/Target/Language.h b/lldb/include/lldb/Target/Language.h index a4c17d2e85b..492425ec088 100644 --- a/lldb/include/lldb/Target/Language.h +++ b/lldb/include/lldb/Target/Language.h @@ -146,6 +146,12 @@ public: FunctionNameRepresentation representation, Stream& s); + virtual void + GetExceptionResolverDescription(bool catch_on, bool throw_on, Stream &s); + + static void + GetDefaultExceptionResolverDescription(bool catch_on, bool throw_on, Stream &s); + // These are accessors for general information about the Languages lldb knows about: static lldb::LanguageType diff --git a/lldb/include/lldb/Target/ObjCLanguageRuntime.h b/lldb/include/lldb/Target/ObjCLanguageRuntime.h index 17907cae646..75f096fdedf 100644 --- a/lldb/include/lldb/Target/ObjCLanguageRuntime.h +++ b/lldb/include/lldb/Target/ObjCLanguageRuntime.h @@ -204,7 +204,7 @@ public: ~ObjCExceptionPrecondition() override = default; bool EvaluatePrecondition(StoppointCallbackContext &context) override; - void DescribePrecondition(Stream &stream, lldb::DescriptionLevel level) override; + void GetDescription(Stream &stream, lldb::DescriptionLevel level) override; Error ConfigurePrecondition(Args &args) override; protected: diff --git a/lldb/source/Breakpoint/Breakpoint.cpp b/lldb/source/Breakpoint/Breakpoint.cpp index f9f0ffbd53b..54f67b90220 100644 --- a/lldb/source/Breakpoint/Breakpoint.cpp +++ b/lldb/source/Breakpoint/Breakpoint.cpp @@ -844,6 +844,9 @@ Breakpoint::GetDescription (Stream *s, lldb::DescriptionLevel level, bool show_l GetOptions()->GetDescription(s, level); + if (m_precondition_sp) + m_precondition_sp->GetDescription(*s, level); + if (level == lldb::eDescriptionLevelFull) { if (!m_name_list.empty()) @@ -959,7 +962,7 @@ Breakpoint::BreakpointPrecondition::EvaluatePrecondition(StoppointCallbackContex } void -Breakpoint::BreakpointPrecondition::DescribePrecondition(Stream &stream, lldb::DescriptionLevel level) +Breakpoint::BreakpointPrecondition::GetDescription(Stream &stream, lldb::DescriptionLevel level) { } diff --git a/lldb/source/Target/Language.cpp b/lldb/source/Target/Language.cpp index 8c392bee88c..b89e5490125 100644 --- a/lldb/source/Target/Language.cpp +++ b/lldb/source/Target/Language.cpp @@ -430,6 +430,19 @@ Language::GetFunctionDisplayName (const SymbolContext *sc, return false; } +void +Language::GetExceptionResolverDescription(bool catch_on, bool throw_on, Stream &s) +{ + GetDefaultExceptionResolverDescription(catch_on, throw_on, s); +} + +void +Language::GetDefaultExceptionResolverDescription(bool catch_on, bool throw_on, Stream &s) +{ + s.Printf ("Exception breakpoint (catch: %s throw: %s)", + catch_on ? "on" : "off", + throw_on ? "on" : "off"); +} //---------------------------------------------------------------------- // Constructor //---------------------------------------------------------------------- diff --git a/lldb/source/Target/LanguageRuntime.cpp b/lldb/source/Target/LanguageRuntime.cpp index a638a2c4480..b1e2b3eb04f 100644 --- a/lldb/source/Target/LanguageRuntime.cpp +++ b/lldb/source/Target/LanguageRuntime.cpp @@ -163,10 +163,12 @@ public: void GetDescription (Stream *s) override { - s->Printf ("Exception breakpoint (catch: %s throw: %s)", - m_catch_bp ? "on" : "off", - m_throw_bp ? "on" : "off"); - + Language *language_plugin = Language::FindPlugin(m_language); + if (language_plugin) + language_plugin->GetExceptionResolverDescription(m_catch_bp, m_throw_bp, *s); + else + Language::GetDefaultExceptionResolverDescription(m_catch_bp, m_throw_bp, *s); + SetActualResolver(); if (m_actual_resolver_sp) { diff --git a/lldb/source/Target/ObjCLanguageRuntime.cpp b/lldb/source/Target/ObjCLanguageRuntime.cpp index ad4ca9a9d11..a18e4c69c57 100644 --- a/lldb/source/Target/ObjCLanguageRuntime.cpp +++ b/lldb/source/Target/ObjCLanguageRuntime.cpp @@ -426,7 +426,7 @@ ObjCLanguageRuntime::ObjCExceptionPrecondition::EvaluatePrecondition(StoppointCa } void -ObjCLanguageRuntime::ObjCExceptionPrecondition::DescribePrecondition(Stream &stream, lldb::DescriptionLevel level) +ObjCLanguageRuntime::ObjCExceptionPrecondition::GetDescription(Stream &stream, lldb::DescriptionLevel level) { } |