diff --git a/src/apps/debugger/arch/x86_64/CpuStateX8664.cpp b/src/apps/debugger/arch/x86_64/CpuStateX8664.cpp index daa5230010..13e45d30a8 100644 --- a/src/apps/debugger/arch/x86_64/CpuStateX8664.cpp +++ b/src/apps/debugger/arch/x86_64/CpuStateX8664.cpp @@ -23,7 +23,8 @@ CpuStateX8664::CpuStateX8664() CpuStateX8664::CpuStateX8664(const x86_64_debug_cpu_state& state) : - fSetRegisters() + fSetRegisters(), + fInterruptVector(0) { SetIntRegister(X86_64_REGISTER_RIP, state.rip); 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_GS, state.gs); SetIntRegister(X86_64_REGISTER_SS, state.ss); + + fInterruptVector = state.vector; } diff --git a/src/apps/debugger/arch/x86_64/CpuStateX8664.h b/src/apps/debugger/arch/x86_64/CpuStateX8664.h index de3f5b88f9..e30c588f66 100644 --- a/src/apps/debugger/arch/x86_64/CpuStateX8664.h +++ b/src/apps/debugger/arch/x86_64/CpuStateX8664.h @@ -69,6 +69,9 @@ public: virtual bool SetRegisterValue(const Register* reg, const BVariant& value); + uint64 InterruptVector() const + { return fInterruptVector; } + bool IsRegisterSet(int32 index) const; uint64 IntRegisterValue(int32 index) const; void SetIntRegister(int32 index, uint64 value); @@ -80,6 +83,7 @@ private: private: uint64 fIntRegisters[X86_64_REGISTER_COUNT]; RegisterBitSet fSetRegisters; + uint64 fInterruptVector; };