summaryrefslogtreecommitdiffstats
path: root/lldb/source/Initialization
diff options
context:
space:
mode:
authorTamas Berghammer <tberghammer@google.com>2015-04-15 09:47:02 +0000
committerTamas Berghammer <tberghammer@google.com>2015-04-15 09:47:02 +0000
commitd8c338d42f81db3d2544e19b03e35b94661785a9 (patch)
treea3238e9ff4b9508bc43d44b972788a8ddc9ff0ce /lldb/source/Initialization
parent63c8be9571df98df49d80cc760092de26106e82a (diff)
downloadbcm5719-llvm-d8c338d42f81db3d2544e19b03e35b94661785a9.tar.gz
bcm5719-llvm-d8c338d42f81db3d2544e19b03e35b94661785a9.zip
Add single stepping logic for linux arm
Linux arm don't support hardware stepping (neither mismatch breakpoints). This patch implement signle stepping with doing a software emulation of the next instruction and then setting a temporary breakpoint at the address where the thread will stop next. Differential revision: http://reviews.llvm.org/D8976 llvm-svn: 234987
Diffstat (limited to 'lldb/source/Initialization')
-rw-r--r--lldb/source/Initialization/SystemInitializerCommon.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lldb/source/Initialization/SystemInitializerCommon.cpp b/lldb/source/Initialization/SystemInitializerCommon.cpp
index e4a1a302026..b57072f682b 100644
--- a/lldb/source/Initialization/SystemInitializerCommon.cpp
+++ b/lldb/source/Initialization/SystemInitializerCommon.cpp
@@ -17,6 +17,7 @@
#include "Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h"
#include "Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h"
+#include "Plugins/Instruction/ARM/EmulateInstructionARM.h"
#include "Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h"
#include "Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.h"
#include "Plugins/ObjectFile/ELF/ObjectFileELF.h"
@@ -110,6 +111,8 @@ SystemInitializerCommon::Initialize()
PlatformKalimba::Initialize();
platform_android::PlatformAndroid::Initialize();
+ EmulateInstructionARM::Initialize();
+
//----------------------------------------------------------------------
// Apple/Darwin hosted plugins
//----------------------------------------------------------------------
@@ -157,6 +160,8 @@ SystemInitializerCommon::Terminate()
PlatformRemoteiOS::Terminate();
PlatformiOSSimulator::Terminate();
+ EmulateInstructionARM::Terminate();
+
#if defined(__APPLE__)
DynamicLoaderDarwinKernel::Terminate();
ObjectFileMachO::Terminate();
OpenPOWER on IntegriCloud