* Support building for Windows on ARM * Fix usage of reserved function name on ARM * Fix architecture dependent `CONTEXT` fields access * Fixes for debugging on Windows on ARM * Fix breakpoint behavior on windows on ARM * Fix register profile when debugging * Remove `drx` error message if not supported * Add support for hardware breakpoints * Disable support for hardware single-stepping * Fix Windows Message breakpoints on ARM * Fix software single-stepping on return instruction on ARM * Consider link register as destination for return instructions * Fix setting debug bits to 16 * Rename `r12` to `ip` for windows arm register profile * Remove debug bits hardcoding on windows * Add 32bit registers to Windows ARM64 register profile * Fix software step breakpoint alignment when entering thumb mode * Define `RZ_TEST_ARCH` for `arm` and `arm64` * Use `StackWalk64` API for backtracing on Windows * Fix software single-stepping ARM in thumb mode * Sync `asm.bits` with debugger * Cleanup windows_debug.c * Add SPDX for cross-arm64-windows.txt * Add floating point control register flags * Fix Windows Arm register profile alignment * Keep `drx` warning
233 lines
No EOL
8.6 KiB
C
233 lines
No EOL
8.6 KiB
C
// SPDX-FileCopyrightText: 2020 GustavoLCR <gugulcr@gmail.com>
|
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
|
|
if (dbg->bits == RZ_SYS_BITS_64) {
|
|
return strdup(
|
|
"=PC pc\n"
|
|
"=SP sp\n"
|
|
"=BP fp\n"
|
|
"=LR lr\n"
|
|
"=A0 x0\n"
|
|
"=A1 x1\n"
|
|
"=A2 x2\n"
|
|
"=A3 x3\n"
|
|
"=ZF zf\n"
|
|
"=SF nf\n"
|
|
"=OF vf\n"
|
|
"=CF cf\n"
|
|
"=SN x16\n"
|
|
"flg cpsr .32 4 0 _____tfiae_____________j__qvczn\n"
|
|
"flg vf .1 4.28 0 overflow\n"
|
|
"flg cf .1 4.29 0 carry\n"
|
|
"flg zf .1 4.30 0 zero\n"
|
|
"flg nf .1 4.31 0 sign\n"
|
|
"gpr x0 .64 8 0\n"
|
|
"gpr x1 .64 16 0\n"
|
|
"gpr x2 .64 24 0\n"
|
|
"gpr x3 .64 32 0\n"
|
|
"gpr x4 .64 40 0\n"
|
|
"gpr x5 .64 48 0\n"
|
|
"gpr x6 .64 56 0\n"
|
|
"gpr x7 .64 64 0\n"
|
|
"gpr x8 .64 72 0\n"
|
|
"gpr x9 .64 80 0\n"
|
|
"gpr x10 .64 88 0\n"
|
|
"gpr x11 .64 96 0\n"
|
|
"gpr x12 .64 104 0\n"
|
|
"gpr x13 .64 112 0\n"
|
|
"gpr x14 .64 120 0\n"
|
|
"gpr x15 .64 128 0\n"
|
|
"gpr x16 .64 136 0\n"
|
|
"gpr x17 .64 144 0\n"
|
|
"gpr x18 .64 152 0\n"
|
|
"gpr x19 .64 160 0\n"
|
|
"gpr x20 .64 168 0\n"
|
|
"gpr x21 .64 176 0\n"
|
|
"gpr x22 .64 184 0\n"
|
|
"gpr x23 .64 192 0\n"
|
|
"gpr x24 .64 200 0\n"
|
|
"gpr x25 .64 208 0\n"
|
|
"gpr x26 .64 216 0\n"
|
|
"gpr x27 .64 224 0\n"
|
|
"gpr x28 .64 232 0\n"
|
|
"gpr w0 .32 8 0\n"
|
|
"gpr w1 .32 16 0\n"
|
|
"gpr w2 .32 24 0\n"
|
|
"gpr w3 .32 32 0\n"
|
|
"gpr w4 .32 40 0\n"
|
|
"gpr w5 .32 48 0\n"
|
|
"gpr w6 .32 56 0\n"
|
|
"gpr w7 .32 64 0\n"
|
|
"gpr w8 .32 72 0\n"
|
|
"gpr w9 .32 80 0\n"
|
|
"gpr w10 .32 88 0\n"
|
|
"gpr w11 .32 96 0\n"
|
|
"gpr w12 .32 104 0\n"
|
|
"gpr w13 .32 112 0\n"
|
|
"gpr w14 .32 120 0\n"
|
|
"gpr w15 .32 128 0\n"
|
|
"gpr w16 .32 136 0\n"
|
|
"gpr w17 .32 144 0\n"
|
|
"gpr w18 .32 152 0\n"
|
|
"gpr w19 .32 160 0\n"
|
|
"gpr w20 .32 168 0\n"
|
|
"gpr w21 .32 176 0\n"
|
|
"gpr w22 .32 184 0\n"
|
|
"gpr w23 .32 192 0\n"
|
|
"gpr w24 .32 200 0\n"
|
|
"gpr w25 .32 208 0\n"
|
|
"gpr w26 .32 216 0\n"
|
|
"gpr w27 .32 224 0\n"
|
|
"gpr w28 .32 232 0\n"
|
|
"gpr fp .64 240 0\n"
|
|
"gpr lr .64 248 0\n"
|
|
"gpr sp .64 256 0\n"
|
|
"gpr pc .64 264 0\n"
|
|
"fpu v0 .128 272 0\n"
|
|
"fpu v1 .128 288 0\n"
|
|
"fpu v2 .128 304 0\n"
|
|
"fpu v3 .128 320 0\n"
|
|
"fpu v4 .128 336 0\n"
|
|
"fpu v5 .128 352 0\n"
|
|
"fpu v6 .128 368 0\n"
|
|
"fpu v7 .128 384 0\n"
|
|
"fpu v8 .128 400 0\n"
|
|
"fpu v9 .128 416 0\n"
|
|
"fpu v10 .128 432 0\n"
|
|
"fpu v11 .128 448 0\n"
|
|
"fpu v12 .128 464 0\n"
|
|
"fpu v13 .128 480 0\n"
|
|
"fpu v14 .128 496 0\n"
|
|
"fpu v15 .128 512 0\n"
|
|
"fpu v16 .128 528 0\n"
|
|
"fpu v17 .128 544 0\n"
|
|
"fpu v18 .128 560 0\n"
|
|
"fpu v19 .128 576 0\n"
|
|
"fpu v20 .128 592 0\n"
|
|
"fpu v21 .128 608 0\n"
|
|
"fpu v22 .128 624 0\n"
|
|
"fpu v23 .128 640 0\n"
|
|
"fpu v24 .128 656 0\n"
|
|
"fpu v25 .128 672 0\n"
|
|
"fpu v26 .128 688 0\n"
|
|
"fpu v27 .128 704 0\n"
|
|
"fpu v28 .128 720 0\n"
|
|
"fpu v29 .128 736 0\n"
|
|
"fpu v30 .128 752 0\n"
|
|
"fpu v31 .128 768 0\n"
|
|
"flg fpcr .32 784 0\n"
|
|
"flg fpsr .32 788 0\n"
|
|
"flg fvf .1 788.28 0 overflow\n"
|
|
"flg fcf .1 788.29 0 carry\n"
|
|
"flg fzf .1 788.30 0 zero\n"
|
|
"flg fnf .1 788.31 0 sign\n"
|
|
"drx bcr0 .32 792 0\n"
|
|
"drx bcr1 .32 796 0\n"
|
|
"drx bcr2 .32 800 0\n"
|
|
"drx bcr3 .32 804 0\n"
|
|
"drx bcr4 .32 808 0\n"
|
|
"drx bcr5 .32 812 0\n"
|
|
"drx bcr6 .32 816 0\n"
|
|
"drx bcr7 .32 820 0\n"
|
|
"drx bvr0 .64 824 0\n"
|
|
"drx bvr1 .64 832 0\n"
|
|
"drx bvr2 .64 840 0\n"
|
|
"drx bvr3 .64 848 0\n"
|
|
"drx bvr4 .64 856 0\n"
|
|
"drx bvr5 .64 864 0\n"
|
|
"drx bvr6 .64 872 0\n"
|
|
"drx bvr7 .64 880 0\n"
|
|
"drx wcr0 .32 888 0\n"
|
|
"drx wcr1 .32 892 0\n"
|
|
"drx wvr0 .64 896 0\n"
|
|
"drx wvr1 .64 904 0\n");
|
|
} else {
|
|
return strdup(
|
|
"=PC pc\n"
|
|
"=SP sp\n"
|
|
"=BP fp\n"
|
|
"=LR lr\n"
|
|
"=A0 r0\n"
|
|
"=A1 r1\n"
|
|
"=A2 r2\n"
|
|
"=A3 r3\n"
|
|
"=ZF zf\n"
|
|
"=SF nf\n"
|
|
"=OF vf\n"
|
|
"=CF cf\n"
|
|
"flg cpsr .32 4 0 _____tfiae_____________j__qvczn\n"
|
|
"flg vf .1 4.28 0 overflow\n"
|
|
"flg cf .1 4.29 0 carry\n"
|
|
"flg zf .1 4.30 0 zero\n"
|
|
"flg nf .1 4.31 0 sign\n"
|
|
"gpr r0 .32 8 0\n"
|
|
"gpr r1 .32 16 0\n"
|
|
"gpr r2 .32 24 0\n"
|
|
"gpr r3 .32 32 0\n"
|
|
"gpr r4 .32 40 0\n"
|
|
"gpr r5 .32 48 0\n"
|
|
"gpr r6 .32 56 0\n"
|
|
"gpr r7 .32 64 0\n"
|
|
"gpr r8 .32 72 0\n"
|
|
"gpr r9 .32 80 0\n"
|
|
"gpr r10 .32 88 0\n"
|
|
"gpr fp .32 96 0\n"
|
|
"gpr ip .32 104 0\n"
|
|
"gpr sp .32 112 0\n"
|
|
"gpr lr .32 120 0\n"
|
|
"gpr pc .64 264 0\n"
|
|
"fpu v0 .128 272 0\n"
|
|
"fpu v1 .128 288 0\n"
|
|
"fpu v2 .128 304 0\n"
|
|
"fpu v3 .128 320 0\n"
|
|
"fpu v4 .128 336 0\n"
|
|
"fpu v5 .128 352 0\n"
|
|
"fpu v6 .128 368 0\n"
|
|
"fpu v7 .128 384 0\n"
|
|
"fpu v8 .128 400 0\n"
|
|
"fpu v9 .128 416 0\n"
|
|
"fpu v10 .128 432 0\n"
|
|
"fpu v11 .128 448 0\n"
|
|
"fpu v12 .128 464 0\n"
|
|
"fpu v13 .128 480 0\n"
|
|
"fpu v14 .128 496 0\n"
|
|
"fpu v15 .128 512 0\n"
|
|
"fpu v16 .128 528 0\n"
|
|
"fpu v17 .128 544 0\n"
|
|
"fpu v18 .128 560 0\n"
|
|
"fpu v19 .128 576 0\n"
|
|
"fpu v20 .128 592 0\n"
|
|
"fpu v21 .128 608 0\n"
|
|
"fpu v22 .128 624 0\n"
|
|
"fpu v23 .128 640 0\n"
|
|
"fpu v24 .128 656 0\n"
|
|
"fpu v25 .128 672 0\n"
|
|
"fpu v26 .128 688 0\n"
|
|
"fpu v27 .128 704 0\n"
|
|
"fpu v28 .128 720 0\n"
|
|
"fpu v29 .128 736 0\n"
|
|
"fpu v30 .128 752 0\n"
|
|
"fpu v31 .128 768 0\n"
|
|
"gpr fpcr .32 784 0\n"
|
|
"gpr fpsr .32 788 0\n"
|
|
"drx bcr0 .32 792 0\n"
|
|
"drx bcr1 .32 796 0\n"
|
|
"drx bcr2 .32 800 0\n"
|
|
"drx bcr3 .32 804 0\n"
|
|
"drx bcr4 .32 808 0\n"
|
|
"drx bcr5 .32 812 0\n"
|
|
"drx bcr6 .32 816 0\n"
|
|
"drx bcr7 .32 820 0\n"
|
|
"drx bvr0 .64 824 0\n"
|
|
"drx bvr1 .64 832 0\n"
|
|
"drx bvr2 .64 840 0\n"
|
|
"drx bvr3 .64 848 0\n"
|
|
"drx bvr4 .64 856 0\n"
|
|
"drx bvr5 .64 864 0\n"
|
|
"drx bvr6 .64 872 0\n"
|
|
"drx bvr7 .64 880 0\n"
|
|
"drx wcr0 .32 888 0\n"
|
|
"drx wcr1 .32 892 0\n"
|
|
"drx wvr0 .64 896 0\n"
|
|
"drx wvr1 .64 904 0\n");
|
|
} |