Debugger: Add interrupt vector CpuStateX8664.

This commit is contained in:
Rene Gollent
2013-07-25 20:11:28 -04:00
parent 271b27d5a3
commit edffd6cde8
2 changed files with 8 additions and 1 deletions
@@ -23,7 +23,8 @@ CpuStateX8664::CpuStateX8664()
CpuStateX8664::CpuStateX8664(const x86_64_debug_cpu_state& state) CpuStateX8664::CpuStateX8664(const x86_64_debug_cpu_state& state)
: :
fSetRegisters() fSetRegisters(),
fInterruptVector(0)
{ {
SetIntRegister(X86_64_REGISTER_RIP, state.rip); SetIntRegister(X86_64_REGISTER_RIP, state.rip);
SetIntRegister(X86_64_REGISTER_RSP, state.rsp); SetIntRegister(X86_64_REGISTER_RSP, state.rsp);
@@ -48,6 +49,8 @@ CpuStateX8664::CpuStateX8664(const x86_64_debug_cpu_state& state)
SetIntRegister(X86_64_REGISTER_FS, state.fs); SetIntRegister(X86_64_REGISTER_FS, state.fs);
SetIntRegister(X86_64_REGISTER_GS, state.gs); SetIntRegister(X86_64_REGISTER_GS, state.gs);
SetIntRegister(X86_64_REGISTER_SS, state.ss); SetIntRegister(X86_64_REGISTER_SS, state.ss);
fInterruptVector = state.vector;
} }
@@ -69,6 +69,9 @@ public:
virtual bool SetRegisterValue(const Register* reg, virtual bool SetRegisterValue(const Register* reg,
const BVariant& value); const BVariant& value);
uint64 InterruptVector() const
{ return fInterruptVector; }
bool IsRegisterSet(int32 index) const; bool IsRegisterSet(int32 index) const;
uint64 IntRegisterValue(int32 index) const; uint64 IntRegisterValue(int32 index) const;
void SetIntRegister(int32 index, uint64 value); void SetIntRegister(int32 index, uint64 value);
@@ -80,6 +83,7 @@ private:
private: private:
uint64 fIntRegisters[X86_64_REGISTER_COUNT]; uint64 fIntRegisters[X86_64_REGISTER_COUNT];
RegisterBitSet fSetRegisters; RegisterBitSet fSetRegisters;
uint64 fInterruptVector;
}; };