diff --git a/libcorkscrew/arch-arm/backtrace-arm.c b/libcorkscrew/arch-arm/backtrace-arm.c
index 93144f0..597662e 100644
--- a/libcorkscrew/arch-arm/backtrace-arm.c
+++ b/libcorkscrew/arch-arm/backtrace-arm.c
@@ -124,14 +124,16 @@
         const ptrace_context_t* context, pid_t tid, uintptr_t pc) {
     uintptr_t exidx_start;
     size_t exidx_size;
+    const map_info_t* mi;
     if (tid < 0) {
+        mi = NULL;
         exidx_start = find_exidx(pc, &exidx_size);
     } else {
-        const map_info_t* mi = find_map_info(context->map_info_list, pc);
+        mi = find_map_info(context->map_info_list, pc);
         if (mi && mi->data) {
             const map_info_data_t* data = (const map_info_data_t*)mi->data;
             exidx_start = data->exidx_start;
-            exidx_size = data->exidx_size;
+            exidx_size = data->exidx_size / 8;
         } else {
             exidx_start = 0;
             exidx_size = 0;
@@ -147,7 +149,7 @@
         pc -= 2;
     }
 
-    uint32_t handler = 0;
+    uintptr_t handler = 0;
     if (exidx_start) {
         uint32_t low = 0;
         uint32_t high = exidx_size;
@@ -189,8 +191,10 @@
             break;
         }
     }
-    LOGV("get handler: pc=0x%08x, exidx_start=0x%08x, exidx_size=%d, handler=0x%08x",
-            pc, exidx_start, exidx_size, handler);
+    LOGV("get_exception_handler: pc=0x%08x, module='%s', module_start=0x%08x, "
+            "exidx_start=0x%08x, exidx_size=%d, handler=0x%08x",
+            pc, mi ? mi->name : "<unknown>", mi ? mi->start : 0,
+            exidx_start, exidx_size, handler);
     return handler;
 }
 
@@ -455,7 +459,7 @@
                 // Don't return the SP for this second frame because we don't
                 // know how big the first one is so we don't know where this
                 // one starts.
-                frame = add_backtrace_entry(state->gregs[R_LR], backtrace,
+                add_backtrace_entry(state->gregs[R_LR], backtrace,
                         ignore_depth, max_depth, &ignored_frames, &returned_frames);
             }
             return returned_frames;
