Ken Thomases : dbghelp: Fix STABS support for 64-bit on OS X.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jun 25 08:19:40 CDT 2015


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

Author: Ken Thomases <ken at codeweavers.com>
Date:   Wed Jun 24 16:31:14 2015 -0500

dbghelp: Fix STABS support for 64-bit on OS X.

OS X uses a struct nlist_64 for 64-bit images, where the n_value field is a
64-bit unsigned integer.

---

 dlls/dbghelp/stabs.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/dlls/dbghelp/stabs.c b/dlls/dbghelp/stabs.c
index 1d0d858..177c6bc 100644
--- a/dlls/dbghelp/stabs.c
+++ b/dlls/dbghelp/stabs.c
@@ -111,7 +111,11 @@ struct stab_nlist
     unsigned char       n_type;
     char                n_other;
     short               n_desc;
+#if defined(__APPLE__) && defined(_WIN64)
+    unsigned long       n_value;
+#else
     unsigned            n_value;
+#endif
 };
 
 static void stab_strcpy(char* dest, int sz, const char* source)
@@ -1465,7 +1469,7 @@ BOOL stabs_parse(struct module* module, unsigned long load_offset,
                 case 35:
                 case 36: loc.reg = CV_REG_MM0 + stab_ptr->n_value - 29; break;
                 default:
-                    FIXME("Unknown register value (%u)\n", stab_ptr->n_value);
+                    FIXME("Unknown register value (%lu)\n", (unsigned long)stab_ptr->n_value);
                     loc.reg = CV_REG_NONE;
                     break;
                 }
@@ -1615,7 +1619,7 @@ BOOL stabs_parse(struct module* module, unsigned long load_offset,
 	case N_EXCL:
             if (stabs_add_include(stabs_find_include(ptr, stab_ptr->n_value)) < 0)
             {
-                ERR("Excluded header not found (%s,%d)\n", ptr, stab_ptr->n_value);
+                ERR("Excluded header not found (%s,%ld)\n", ptr, (unsigned long)stab_ptr->n_value);
                 module_reset_debug_info(module);
                 ret = FALSE;
                 goto done;
@@ -1661,8 +1665,8 @@ BOOL stabs_parse(struct module* module, unsigned long load_offset,
             break;
         }
         stabbuff[0] = '\0';
-        TRACE("0x%02x %x %s\n",
-              stab_ptr->n_type, stab_ptr->n_value, debugstr_a(strs + stab_ptr->n_strx));
+        TRACE("0x%02x %lx %s\n",
+              stab_ptr->n_type, (unsigned long)stab_ptr->n_value, debugstr_a(strs + stab_ptr->n_strx));
     }
     module->module.SymType = SymDia;
     module->module.CVSig = 'S' | ('T' << 8) | ('A' << 16) | ('B' << 24);




More information about the wine-cvs mailing list