summaryrefslogtreecommitdiffstats
path: root/lldb/source
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2012-10-30 23:57:32 +0000
committerGreg Clayton <gclayton@apple.com>2012-10-30 23:57:32 +0000
commitc280746b8cad81c09da2fbf45f7db75fea2d82ac (patch)
tree1c1b181c6fb928c5b352672ac5a6dffc7dfa6475 /lldb/source
parent2fb45d0affc628f3962eb7670afb7adbdd877575 (diff)
downloadbcm5719-llvm-c280746b8cad81c09da2fbf45f7db75fea2d82ac.tar.gz
bcm5719-llvm-c280746b8cad81c09da2fbf45f7db75fea2d82ac.zip
<rdar://problem/12602978>
RegisterContextKDP_i386 was not correctly writing registers due to missing "virtual" keywords. Added the virtual keywords and made the functions pure virtual to ensure subclasses can't get away without implementing these functions. llvm-svn: 167066
Diffstat (limited to 'lldb/source')
-rw-r--r--lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp14
-rw-r--r--lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h49
-rw-r--r--lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h40
-rw-r--r--lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h30
4 files changed, 44 insertions, 89 deletions
diff --git a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
index 9d288a4d5bf..92afb424f64 100644
--- a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
+++ b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
@@ -259,7 +259,7 @@ class RegisterContextDarwin_arm_Mach : public RegisterContextDarwin_arm
{
public:
RegisterContextDarwin_arm_Mach (lldb_private::Thread &thread, const DataExtractor &data) :
- RegisterContextDarwin_arm (thread, 0)
+ RegisterContextDarwin_arm (thread, 0)
{
SetRegisterDataFrom_LC_THREAD (data);
}
@@ -316,6 +316,12 @@ protected:
{
return 0;
}
+
+ virtual int
+ DoReadDBG (lldb::tid_t tid, int flavor, DBG &dbg)
+ {
+ return -1;
+ }
virtual int
DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr)
@@ -334,6 +340,12 @@ protected:
{
return 0;
}
+
+ virtual int
+ DoWriteDBG (lldb::tid_t tid, int flavor, const DBG &dbg)
+ {
+ return -1;
+ }
};
#define MACHO_NLIST_ARM_SYMBOL_IS_THUMB 0x0008
diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h
index eba341c13cc..b8e91b7b19b 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h
+++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h
@@ -284,47 +284,26 @@ protected:
return -1;
}
- int
- DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu)
- {
- return -1;
- }
+ virtual int
+ DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu) = 0;
- int
- DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc)
- {
- return -1;
- }
+ virtual int
+ DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc) = 0;
- int
- DoReadDBG (lldb::tid_t tid, int flavor, DBG &dbg)
- {
- return -1;
- }
+ virtual int
+ DoReadDBG (lldb::tid_t tid, int flavor, DBG &dbg) = 0;
- int
- DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr)
- {
- return -1;
- }
+ virtual int
+ DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr) = 0;
- int
- DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu)
- {
- return -1;
- }
+ virtual int
+ DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu) = 0;
- int
- DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc)
- {
- return -1;
- }
+ virtual int
+ DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc) = 0;
- int
- DoWriteDBG (lldb::tid_t tid, int flavor, const DBG &dbg)
- {
- return -1;
- }
+ virtual int
+ DoWriteDBG (lldb::tid_t tid, int flavor, const DBG &dbg) = 0;
int
ReadRegisterSet (uint32_t set, bool force);
diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h
index 773aa627cd8..e2cde590a91 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h
+++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h
@@ -230,40 +230,22 @@ protected:
// Subclasses override these to do the actual reading.
virtual int
- DoReadGPR (lldb::tid_t tid, int flavor, GPR &gpr)
- {
- return -1;
- }
+ DoReadGPR (lldb::tid_t tid, int flavor, GPR &gpr) = 0;
- int
- DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu)
- {
- return -1;
- }
+ virtual int
+ DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu) = 0;
- int
- DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc)
- {
- return -1;
- }
+ virtual int
+ DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc) = 0;
- int
- DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr)
- {
- return -1;
- }
+ virtual int
+ DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr) = 0;
- int
- DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu)
- {
- return -1;
- }
+ virtual int
+ DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu) = 0;
- int
- DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc)
- {
- return -1;
- }
+ virtual int
+ DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc) = 0;
int
ReadRegisterSet (uint32_t set, bool force);
diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h
index 8160cd0cc0a..a36b8cb8731 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h
+++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h
@@ -234,40 +234,22 @@ protected:
// Subclasses override these to do the actual reading.
virtual int
- DoReadGPR (lldb::tid_t tid, int flavor, GPR &gpr)
- {
- return -1;
- }
+ DoReadGPR (lldb::tid_t tid, int flavor, GPR &gpr) = 0;
virtual int
- DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu)
- {
- return -1;
- }
+ DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu) = 0;
virtual int
- DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc)
- {
- return -1;
- }
+ DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc) = 0;
virtual int
- DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr)
- {
- return -1;
- }
+ DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr) = 0;
virtual int
- DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu)
- {
- return -1;
- }
+ DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu) = 0;
virtual int
- DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc)
- {
- return -1;
- }
+ DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc) = 0;
int
ReadRegisterSet (uint32_t set, bool force);
OpenPOWER on IntegriCloud