diff options
Diffstat (limited to 'include/lldb/Core/ArchSpec.h')
-rw-r--r-- | include/lldb/Core/ArchSpec.h | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/include/lldb/Core/ArchSpec.h b/include/lldb/Core/ArchSpec.h index 255beee573b6..694e204cdc0d 100644 --- a/include/lldb/Core/ArchSpec.h +++ b/include/lldb/Core/ArchSpec.h @@ -104,7 +104,6 @@ public: eCore_uknownMach32, eCore_uknownMach64, - eCore_kalimba, eCore_kalimba3, eCore_kalimba4, eCore_kalimba5, @@ -142,10 +141,12 @@ public: kCore_hexagon_first = eCore_hexagon_generic, kCore_hexagon_last = eCore_hexagon_hexagonv5, - kCore_kalimba_first = eCore_kalimba, + kCore_kalimba_first = eCore_kalimba3, kCore_kalimba_last = eCore_kalimba5 }; + typedef void (* StopInfoOverrideCallbackType)(lldb_private::Thread &thread); + //------------------------------------------------------------------ /// Default constructor. /// @@ -459,6 +460,30 @@ public: bool IsCompatibleMatch (const ArchSpec& rhs) const; + //------------------------------------------------------------------ + /// Get a stop info override callback for the current architecture. + /// + /// Most platform specific code should go in lldb_private::Platform, + /// but there are cases where no matter which platform you are on + /// certain things hold true. + /// + /// This callback is currently intended to handle cases where a + /// program stops at an instruction that won't get executed and it + /// allows the stop reasonm, like "breakpoint hit", to be replaced + /// with a different stop reason like "no stop reason". + /// + /// This is specifically used for ARM in Thumb code when we stop in + /// an IT instruction (if/then/else) where the instruction won't get + /// executed and therefore it wouldn't be correct to show the program + /// stopped at the current PC. The code is generic and applies to all + /// ARM CPUs. + /// + /// @return NULL or a valid stop info override callback for the + /// current architecture. + //------------------------------------------------------------------ + StopInfoOverrideCallbackType + GetStopInfoOverrideCallback () const; + protected: bool IsEqualTo (const ArchSpec& rhs, bool exact_match) const; |