add_subdirectory(debug/dbgutil)
if(CLR_CMAKE_HOST_UNIX)
- if(CLR_CMAKE_HOST_OSX OR (CLR_CMAKE_HOST_LINUX AND NOT CLR_CMAKE_HOST_UNIX_X86 AND NOT CLR_CMAKE_HOST_ANDROID))
+ if(CLR_CMAKE_HOST_OSX OR (CLR_CMAKE_HOST_LINUX AND NOT CLR_CMAKE_HOST_ANDROID))
add_subdirectory(debug/createdump)
- endif(CLR_CMAKE_HOST_OSX OR (CLR_CMAKE_HOST_LINUX AND NOT CLR_CMAKE_HOST_UNIX_X86 AND NOT CLR_CMAKE_HOST_ANDROID))
+ endif(CLR_CMAKE_HOST_OSX OR (CLR_CMAKE_HOST_LINUX AND NOT CLR_CMAKE_HOST_ANDROID))
# Include the dummy c++ include files
include_directories("pal/inc/rt/cpp")
inline const user_fpregs_struct* FPRegisters() const { return &m_fpRegisters; }
#if defined(__i386__)
inline const user_fpxregs_struct* FPXRegisters() const { return &m_fpxRegisters; }
+ inline const uint64_t GetInstructionPointer() const { return m_gpRegisters.eip; }
+ inline const uint64_t GetStackPointer() const { return m_gpRegisters.esp; }
+ inline const uint64_t GetFramePointer() const { return m_gpRegisters.ebp; }
#elif defined(__arm__) && defined(__VFP_FP__) && !defined(__SOFTFP__)
inline const user_vfpregs_struct* VFPRegisters() const { return &m_vfpRegisters; }
#endif
TRACE("Thread %04x PC %016llx SP %016llx\n", m_tid, (unsigned long long)m_gpRegisters.csr_era, (unsigned long long)m_gpRegisters.regs[3]);
#elif defined(__riscv)
TRACE("Thread %04x PC %016llx SP %016llx\n", m_tid, (unsigned long long)m_gpRegisters.pc, (unsigned long long)m_gpRegisters.sp);
+#elif defined(__i386__)
+ TRACE("Thread %04x EIP %08lx ESP %08lx\n", m_tid, (unsigned long)m_gpRegisters.eip, (unsigned long)m_gpRegisters.esp);
#else
#error "Unsupported architecture"
#endif
context->Fpcr = m_fpRegisters.fpcr;
context->Fpsr = m_fpRegisters.fpsr;
}
+#elif defined(__i386__)
+ if ((flags & CONTEXT_CONTROL) == CONTEXT_CONTROL)
+ {
+ context->Ebp = m_gpRegisters.ebp;
+ context->Eip = m_gpRegisters.eip;
+ context->EFlags = m_gpRegisters.eflags;
+ context->Esp = m_gpRegisters.esp;
+ context->SegCs = m_gpRegisters.xcs;
+ context->SegSs = m_gpRegisters.xss;
+ context->SegGs_PAL_Undefined = m_gpRegisters.xgs;
+ context->SegFs_PAL_Undefined = m_gpRegisters.xfs;
+ context->SegEs_PAL_Undefined = m_gpRegisters.xes;
+ context->SegDs_PAL_Undefined = m_gpRegisters.xds;
+ }
+ if ((flags & CONTEXT_INTEGER) == CONTEXT_INTEGER)
+ {
+ context->Edi = m_gpRegisters.edi;
+ context->Esi = m_gpRegisters.esi;
+ context->Ebx = m_gpRegisters.ebx;
+ context->Edx = m_gpRegisters.edx;
+ context->Ecx = m_gpRegisters.ecx;
+ context->Eax = m_gpRegisters.eax;
+ }
#elif defined(__arm__)
if ((flags & CONTEXT_CONTROL) == CONTEXT_CONTROL)
{