winedbg: Slightly change the option setting syntax (allows also to get the current state back).
This commit is contained in:
parent
4c00325c3b
commit
508414313e
|
@ -210,8 +210,8 @@ set_command:
|
|||
| tSET '-' tIDENTIFIER { info_wine_dbg_channel(FALSE, NULL, $3); }
|
||||
| tSET tIDENTIFIER '+' tIDENTIFIER { info_wine_dbg_channel(TRUE, $2, $4); }
|
||||
| tSET tIDENTIFIER '-' tIDENTIFIER { info_wine_dbg_channel(FALSE, $2, $4); }
|
||||
| tSET '!' tIDENTIFIER '+' { dbg_set_option($3, TRUE); }
|
||||
| tSET '!' tIDENTIFIER '-' { dbg_set_option($3, FALSE); }
|
||||
| tSET '!' tIDENTIFIER tIDENTIFIER { dbg_set_option($3, $4); }
|
||||
| tSET '!' tIDENTIFIER { dbg_set_option($3, NULL); }
|
||||
;
|
||||
|
||||
x_command:
|
||||
|
|
|
@ -456,7 +456,7 @@ extern void dbg_del_thread(struct dbg_thread* t);
|
|||
extern BOOL dbg_init(HANDLE hProc, const WCHAR* in, BOOL invade);
|
||||
extern BOOL dbg_load_module(HANDLE hProc, HANDLE hFile, const WCHAR* name, DWORD base, DWORD size);
|
||||
extern BOOL dbg_get_debuggee_info(HANDLE hProcess, IMAGEHLP_MODULE* imh_mod);
|
||||
extern void dbg_set_option(const char*, BOOL);
|
||||
extern void dbg_set_option(const char*, const char*);
|
||||
|
||||
/* gdbproxy.c */
|
||||
extern int gdb_main(int argc, char* argv[]);
|
||||
|
|
|
@ -501,13 +501,20 @@ void dbg_del_thread(struct dbg_thread* t)
|
|||
HeapFree(GetProcessHeap(), 0, t);
|
||||
}
|
||||
|
||||
void dbg_set_option(const char* option, BOOL enable)
|
||||
void dbg_set_option(const char* option, const char* val)
|
||||
{
|
||||
if (!strcmp(option, "module"))
|
||||
if (!strcasecmp(option, "module_load_mismatched"))
|
||||
{
|
||||
DWORD opt = SymGetOptions();
|
||||
if (enable) opt |= SYMOPT_LOAD_ANYTHING;
|
||||
else opt &= ~SYMOPT_LOAD_ANYTHING;
|
||||
if (!val)
|
||||
dbg_printf("Option: module_load_mismatched %s\n", opt & SYMOPT_LOAD_ANYTHING ? "true" : "false");
|
||||
else if (!strcasecmp(val, "true")) opt |= SYMOPT_LOAD_ANYTHING;
|
||||
else if (!strcasecmp(val, "false")) opt &= ~SYMOPT_LOAD_ANYTHING;
|
||||
else
|
||||
{
|
||||
dbg_printf("Syntax: module_load_mismatched [true|false]\n");
|
||||
return;
|
||||
}
|
||||
SymSetOptions(opt);
|
||||
}
|
||||
else dbg_printf("Unknown option '%s'\n", option);
|
||||
|
|
Loading…
Reference in New Issue