Changeset View
Changeset View
Standalone View
Standalone View
source/Plugins/Process/Linux/NativeProcessLinux.cpp
Show First 20 Lines • Show All 1,341 Lines • ▼ Show 20 Lines | if (emulation_result) { | ||||
// modifying the PC but we don't know how. | // modifying the PC but we don't know how. | ||||
return Error("Instruction emulation failed unexpectedly."); | return Error("Instruction emulation failed unexpectedly."); | ||||
} | } | ||||
if (m_arch.GetMachine() == llvm::Triple::arm) { | if (m_arch.GetMachine() == llvm::Triple::arm) { | ||||
if (next_flags & 0x20) { | if (next_flags & 0x20) { | ||||
// Thumb mode | // Thumb mode | ||||
error = SetSoftwareBreakpoint(next_pc, 2); | error = SetSoftwareBreakpoint(next_pc, 2); | ||||
} else { | } else if (next_pc) { | ||||
// Arm mode | // Arm mode | ||||
error = SetSoftwareBreakpoint(next_pc, 4); | error = SetSoftwareBreakpoint(next_pc, 4); | ||||
} | } | ||||
} else if (m_arch.GetMachine() == llvm::Triple::mips64 || | } else if (m_arch.GetMachine() == llvm::Triple::mips64 || | ||||
m_arch.GetMachine() == llvm::Triple::mips64el || | m_arch.GetMachine() == llvm::Triple::mips64el || | ||||
m_arch.GetMachine() == llvm::Triple::mips || | m_arch.GetMachine() == llvm::Triple::mips || | ||||
m_arch.GetMachine() == llvm::Triple::mipsel) | m_arch.GetMachine() == llvm::Triple::mipsel) | ||||
error = SetSoftwareBreakpoint(next_pc, 4); | error = SetSoftwareBreakpoint(next_pc, 4); | ||||
▲ Show 20 Lines • Show All 1,395 Lines • Show Last 20 Lines |