summaryrefslogtreecommitdiff
path: root/include/lldb/Core/ArchSpec.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/Core/ArchSpec.h')
-rw-r--r--include/lldb/Core/ArchSpec.h29
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;