target: armv8: Add TARGET_HALTED check for gdb connect 58/4758/3
authorLiming Sun <lsun@mellanox.com>
Mon, 5 Nov 2018 15:26:05 +0000 (10:26 -0500)
committerMatthias Welwarsky <matthias@welwarsky.de>
Tue, 18 Dec 2018 13:23:07 +0000 (13:23 +0000)
commit651998e33771bdad56873e3e70bd875104ca1d12
tree7d1d79cbae3eba3e8086adb84198e72e69bbc3ec
parentbff87a7f28fb60b40f14a91ed3bef982bdc8db92
target: armv8: Add TARGET_HALTED check for gdb connect

This commit adds TARGET_HALTED check in armv8_get_core_reg32()
and armv8_set_core_reg32() to void a crash issue when gdb connects
but fails to halt the ARM core. Similar logic can be found in
armv8_get_core_reg() and armv8_set_core_reg().

Below is the call stack information of this case when gdb connects.

(gdb) bt
    regnum=regnum@entry=0, dpm=0x990110) at src/target/armv8_dpm.c:657
    r=0x9c7240, regnum=0, mode=<optimized out>) at src/target/armv8_dpm.c:974
    at src/target/armv8.c:1487
    packet=0x8ec8e0 <gdb_packet_buffer.9962> "g",
    packet_size=<optimized out>, connection=<optimized out>)
    at src/server/gdb_server.c:1200
    at src/server/gdb_server.c:3180
    command_context=command_context@entry=0x935010)
    at src/server/server.c:566
...

Change-Id: I159837b533f110998184f910a0abe48409bd58f1
Signed-off-by: Liming Sun <lsun@mellanox.com>
Reviewed-on: http://openocd.zylin.com/4758
Tested-by: jenkins
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
src/target/armv8.c