Index: source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp =================================================================== --- source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp +++ source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp @@ -344,6 +344,12 @@ trap_opcode = g_ppc_opcode; trap_opcode_size = sizeof(g_ppc_opcode); } + case llvm::Triple::arm: + { + static const uint8_t g_arm_opcode[] = { 0xfe, 0xde, 0xff, 0xe7 }; + trap_opcode = g_arm_opcode; + trap_opcode_size = sizeof(g_arm_opcode); + } } if (bp_site->SetTrapOpcode(trap_opcode, trap_opcode_size)) Index: source/Plugins/Process/POSIX/POSIXThread.cpp =================================================================== --- source/Plugins/Process/POSIX/POSIXThread.cpp +++ source/Plugins/Process/POSIX/POSIXThread.cpp @@ -41,6 +41,7 @@ #include "Plugins/Process/Utility/RegisterContextLinux_arm64.h" #include "Plugins/Process/Utility/RegisterContextLinux_i386.h" #include "Plugins/Process/Utility/RegisterContextLinux_x86_64.h" +#include "Plugins/Process/Utility/RegisterContextFreeBSD_arm.h" #include "Plugins/Process/Utility/RegisterContextFreeBSD_i386.h" #include "Plugins/Process/Utility/RegisterContextFreeBSD_mips64.h" #include "Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.h" @@ -171,7 +172,11 @@ case llvm::Triple::FreeBSD: switch (target_arch.GetMachine()) { - case llvm::Triple::ppc: + case llvm::Triple::arm: + reg_interface = new RegisterContextFreeBSD_arm(target_arch); + break; + + case llvm::Triple::ppc: #ifndef __powerpc64__ reg_interface = new RegisterContextFreeBSD_powerpc32(target_arch); break;