GDB не останавливается на следующей инструкции при определенных условиях - PullRequest
1 голос
/ 01 мая 2019

При использовании следующего кода под GDB

.global main
main:
         push    {r0-r12,lr}
         bl      cls
         ldr     r0,=texte
a:       ldrb    r1,[r0],#1
         pop     {r0-r12,pc}

cls:     push    {r0-r2,lr}
         pop     {r0-r2,pc}

texte:  .asciz "Hello World!"

Если я поставлю точку останова в строке ldr r0,=texte, а затем выполню «следующую», программа не остановится при следующей инструкции. Она будет выполняться до конца.
Но если я удаляю инструкцию bl cls или удаляю метку «a:», «next» работает нормально, то есть останавливается на инстансе «ldrb».
Я действительно не понимаю, почему. Этот код ничего не значит. Это просто выдержка из более крупной программы, чтобы воспроизвести проблему.

...