1 //===-- Architecture.h ------------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLDB_CORE_ARCHITECTURE_H
11 #define LLDB_CORE_ARCHITECTURE_H
13 #include "lldb/Core/PluginInterface.h"
15 namespace lldb_private {
17 class Architecture : public PluginInterface {
19 Architecture() = default;
20 virtual ~Architecture() = default;
22 //------------------------------------------------------------------
23 /// This is currently intended to handle cases where a
24 /// program stops at an instruction that won't get executed and it
25 /// allows the stop reason, like "breakpoint hit", to be replaced
26 /// with a different stop reason like "no stop reason".
28 /// This is specifically used for ARM in Thumb code when we stop in
29 /// an IT instruction (if/then/else) where the instruction won't get
30 /// executed and therefore it wouldn't be correct to show the program
31 /// stopped at the current PC. The code is generic and applies to all
33 //------------------------------------------------------------------
34 virtual void OverrideStopInfo(Thread &thread) = 0;
37 Architecture(const Architecture &) = delete;
38 void operator=(const Architecture &) = delete;
41 } // namespace lldb_private
43 #endif // LLDB_CORE_ARCHITECTURE_H