=?UTF-8?Q?Andr=C3=A9=20Hentschel=20?=: winedbg: Respect Thumb mode when adjusting PC on ARM.

Alexandre Julliard julliard at winehq.org
Mon Mar 12 11:59:55 CDT 2012


Module: wine
Branch: master
Commit: 2c5a7743be823caefde72a14ef85221b1d521497
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2c5a7743be823caefde72a14ef85221b1d521497

Author: André Hentschel <nerv at dawncrow.de>
Date:   Sat Mar 10 18:26:05 2012 +0100

winedbg: Respect Thumb mode when adjusting PC on ARM.

---

 programs/winedbg/be_arm.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/programs/winedbg/be_arm.c b/programs/winedbg/be_arm.c
index c39043c..6c1cc05 100644
--- a/programs/winedbg/be_arm.c
+++ b/programs/winedbg/be_arm.c
@@ -205,13 +205,15 @@ static void be_arm_clear_watchpoint(CONTEXT* ctx, unsigned idx)
 
 static int be_arm_adjust_pc_for_break(CONTEXT* ctx, BOOL way)
 {
+    INT step = (ctx->Cpsr & 0x20) ? 2 : 4;
+
     if (way)
     {
-        ctx->Pc-=4;
-        return -4;
+        ctx->Pc -= step;
+        return -step;
     }
-    ctx->Pc+=4;
-    return 4;
+    ctx->Pc += step;
+    return step;
 }
 
 static int be_arm_fetch_integer(const struct dbg_lvalue* lvalue, unsigned size,




More information about the wine-cvs mailing list