ARM上的断点

时间:2015-06-23 13:07:58

标签: linux linux-kernel gdb arm breakpoints

我最近读到ARM上的Linux软件断点是在ARM模式下使用UND指令和在Thumb模式下使用BKPT指令实现的。为什么有2个单独的指令用于引发软件中断?

1 个答案:

答案 0 :(得分:0)

Thumb兼容代码:

0000d564 <pthread_mutex_init>:
    d564:   e2503000    subs    r3, r0, #0
    d568:   03a00016    moveq   r0, #22
    d56c:   012fff1e    bxeq    lr

纯手臂:

form_response

arm bkpt 0xe7f001f0

thumb bkpt 0xde01

如果尝试使用arm bkpt并在函数中重写第一条指令: pthread_mutex_init一切都会好的,但是如果在pthread_mutexattr_setpshared中重写第一条指令,第二条指令也会被重写。

如果总是尝试使用thumb bkpt并在pthread_mutex_init中重写第一条指令,结果指令将无效。