http://bugs.winehq.org/show_bug.cgi?id=4903
Summary: Setting breakpoint in form of <module>!<id> doesn't work Product: Wine Version: 0.9.10. Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-debug AssignedTo: wine-bugs@winehq.org ReportedBy: codemachine@inbox.ru
Hi, breakpoint command in winedbg should accept identifier in form <module>!<id>: "-Identifiers can take a '!' in their names. This allow mainly to access symbols from different DLLs like USER32!CreateWindowExA." - from Wine Developer's Guide. But when I enter such expressions winedbg seems to process only part before '!'.
Example: <in some debugging session>: Wine-dbg>b advapi32!HeapFree No symbols found for advapi32 Unable to add breakpoint, will check again when a new DLL is loaded syntax error
I've tried to investigate this issue and seems that problem somewhere in winedbg Yacc rules. When I've changed 'identifier' rule in dbg.y From: identifier: tIDENTIFIER { $$ = $1; } | tPATH '!' tIDENTIFIER { .... } To identifier: tIDENTIFIER { $$ = $1; } | tIDENTIFIER '!' tIDENTIFIER { ... }
winedbg began to accept such breakpoint commands properly: Wine-dbg>b advapi32!HeapFree Many symbols with name 'advapi32!HeapFree', choose the one you want (<cr> to abort): [1]: 0x7f9baa70 HeapFree in advapi32 [2]: 0x7f9baa70 HeapFree in advapi32
But it still does case-sensitive search through modules and 'ADVAPI32!HeapFree' doesn't work, but, as far as I've understood from Developer's Guide example, case-insensitive search is expected.