André Hentschel : dbghelp: Implement arm_get_addr.

Alexandre Julliard julliard at winehq.org
Fri Oct 15 10:40:23 CDT 2010


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

Author: André Hentschel <nerv at dawncrow.de>
Date:   Thu Oct 14 22:10:45 2010 +0200

dbghelp: Implement arm_get_addr.

---

 dlls/dbghelp/cpu_arm.c |   17 ++++++++++-------
 1 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/dlls/dbghelp/cpu_arm.c b/dlls/dbghelp/cpu_arm.c
index 0bd8aad..fd0b781 100644
--- a/dlls/dbghelp/cpu_arm.c
+++ b/dlls/dbghelp/cpu_arm.c
@@ -32,15 +32,18 @@ WINE_DEFAULT_DEBUG_CHANNEL(dbghelp);
 static unsigned arm_get_addr(HANDLE hThread, const CONTEXT* ctx,
                              enum cpu_addr ca, ADDRESS64* addr)
 {
-   switch (ca)
+    addr->Mode    = AddrModeFlat;
+    addr->Segment = 0; /* don't need segment */
+    switch (ca)
     {
-    case cpu_addr_pc:
-    case cpu_addr_stack:
-    case cpu_addr_frame:
-    default:
-         FIXME("not done for ARM\n");
+#ifdef __arm__
+    case cpu_addr_pc:    addr->Offset = ctx->Pc; return TRUE;
+    case cpu_addr_stack: addr->Offset = ctx->Sp; return TRUE;
+    case cpu_addr_frame: addr->Offset = ctx->Fp; return TRUE;
+#endif
+    default: addr->Mode = -1;
+        return FALSE;
     }
-    return FALSE;
 }
 
 static BOOL arm_stack_walk(struct cpu_stack_walk* csw, LPSTACKFRAME64 frame, CONTEXT* context)




More information about the wine-cvs mailing list