wine/programs/winedbg symbol.c

Alexandre Julliard julliard at wine.codeweavers.com
Thu Nov 17 05:04:40 CST 2005


ChangeSet ID:	21305
CVSROOT:	/opt/cvs-commit
Module name:	wine
Changes by:	julliard at winehq.org	2005/11/17 05:04:39

Modified files:
	programs/winedbg: symbol.c 

Log message:
	Eric Pouech <eric.pouech at wanadoo.fr>
	When a symbol name already contains a module name, we shouldn't search
	in other modules.

Patch: http://cvs.winehq.org/patch.py?id=21305

Old revision  New revision  Changes     Path
 1.8           1.9           +24 -5      wine/programs/winedbg/symbol.c

Index: wine/programs/winedbg/symbol.c
diff -u -p wine/programs/winedbg/symbol.c:1.8 wine/programs/winedbg/symbol.c:1.9
--- wine/programs/winedbg/symbol.c:1.8	17 Nov 2005 11: 4:39 -0000
+++ wine/programs/winedbg/symbol.c	17 Nov 2005 11: 4:39 -0000
@@ -232,9 +232,16 @@ enum sym_get_lval symbol_get_lvalue(cons
     sgv.bp_disp    = bp_disp ? TRUE : FALSE;
     sgv.do_thunks  = DBG_IVAR(AlwaysShowThunks);
 
-    buffer[0] = '*';
-    buffer[1] = '!';
-    strcpy(&buffer[2], name);
+    if (strchr(name, '!'))
+    {
+        strcpy(buffer, name);
+    }
+    else
+    {
+        buffer[0] = '*';
+        buffer[1] = '!';
+        strcpy(&buffer[2], name);
+    }
 
     /* this is a wine specific options to return also ELF modules in the
      * enumeration
@@ -248,8 +255,20 @@ enum sym_get_lval symbol_get_lvalue(cons
 
     if (!sgv.num && (name[0] != '_'))
     {
-        buffer[2] = '_';
-        strcpy(&buffer[3], name);
+        char*   ptr = strchr(name, '!');
+
+        if (ptr++)
+        {
+            memmove(ptr + 1, ptr, strlen(ptr));
+            *ptr = '_';
+        }
+        else
+        {
+            buffer[0] = '*';
+            buffer[1] = '!';
+            buffer[2] = '_';
+            strcpy(&buffer[3], name);
+        }
         if (!SymEnumSymbols(dbg_curr_process->handle, 0, buffer, sgv_cb, (void*)&sgv))
         {
             SymSetOptions(opt);



More information about the wine-cvs mailing list