ChangeSet ID: 21305 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@winehq.org 2005/11/17 05:04:39
Modified files: programs/winedbg: symbol.c
Log message: Eric Pouech eric.pouech@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);