mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-21 01:12:32 +08:00
(check in missing file)
* win32-nat.c (cygwin_exceptions): New variable. (handle_exception): Treat a cygwin exception like a normal exception if cygwin_exceptions is true. (_initialize_win32_nat): Add "set cygwin-exceptions" handler.
This commit is contained in:
parent
2b3c8945cd
commit
09280ddfff
@ -142,6 +142,7 @@ static int saw_create;
|
||||
|
||||
/* User options. */
|
||||
static int new_console = 0;
|
||||
static int cygwin_exceptions = 0;
|
||||
static int new_group = 1;
|
||||
static int debug_exec = 0; /* show execution */
|
||||
static int debug_events = 0; /* show events from kernel */
|
||||
@ -1114,7 +1115,7 @@ handle_exception (struct target_waitstatus *ourstatus)
|
||||
within the text segment of the DLL itself. */
|
||||
char *fn;
|
||||
bfd_vma addr = (bfd_vma) current_event.u.Exception.ExceptionRecord.ExceptionAddress;
|
||||
if ((addr >= cygwin_load_start && addr < cygwin_load_end)
|
||||
if ((!cygwin_exceptions && (addr >= cygwin_load_start && addr < cygwin_load_end))
|
||||
|| (find_pc_partial_function (addr, &fn, NULL, NULL)
|
||||
&& strncmp (fn, "KERNEL32!IsBad", strlen ("KERNEL32!IsBad")) == 0))
|
||||
return 0;
|
||||
@ -2437,6 +2438,13 @@ Show use of shell to start subprocess."), NULL,
|
||||
NULL, /* FIXME: i18n: */
|
||||
&setlist, &showlist);
|
||||
|
||||
add_setshow_boolean_cmd ("cygwin-exceptions", class_support, &cygwin_exceptions, _("\
|
||||
Break when an exception is detected in the Cygwin DLL itself."), _("\
|
||||
Show whether gdb breaks on exceptions in the Cygwin DLL itself."), NULL,
|
||||
NULL,
|
||||
NULL, /* FIXME: i18n: */
|
||||
&setlist, &showlist);
|
||||
|
||||
add_setshow_boolean_cmd ("new-console", class_support, &new_console, _("\
|
||||
Set creation of new console when creating child process."), _("\
|
||||
Show creation of new console when creating child process."), NULL,
|
||||
|
@ -142,6 +142,7 @@ static int saw_create;
|
||||
|
||||
/* User options. */
|
||||
static int new_console = 0;
|
||||
static int cygwin_exceptions = 0;
|
||||
static int new_group = 1;
|
||||
static int debug_exec = 0; /* show execution */
|
||||
static int debug_events = 0; /* show events from kernel */
|
||||
@ -1114,7 +1115,7 @@ handle_exception (struct target_waitstatus *ourstatus)
|
||||
within the text segment of the DLL itself. */
|
||||
char *fn;
|
||||
bfd_vma addr = (bfd_vma) current_event.u.Exception.ExceptionRecord.ExceptionAddress;
|
||||
if ((addr >= cygwin_load_start && addr < cygwin_load_end)
|
||||
if ((!cygwin_exceptions && (addr >= cygwin_load_start && addr < cygwin_load_end))
|
||||
|| (find_pc_partial_function (addr, &fn, NULL, NULL)
|
||||
&& strncmp (fn, "KERNEL32!IsBad", strlen ("KERNEL32!IsBad")) == 0))
|
||||
return 0;
|
||||
@ -2437,6 +2438,13 @@ Show use of shell to start subprocess."), NULL,
|
||||
NULL, /* FIXME: i18n: */
|
||||
&setlist, &showlist);
|
||||
|
||||
add_setshow_boolean_cmd ("cygwin-exceptions", class_support, &cygwin_exceptions, _("\
|
||||
Break when an exception is detected in the Cygwin DLL itself."), _("\
|
||||
Show whether gdb breaks on exceptions in the Cygwin DLL itself."), NULL,
|
||||
NULL,
|
||||
NULL, /* FIXME: i18n: */
|
||||
&setlist, &showlist);
|
||||
|
||||
add_setshow_boolean_cmd ("new-console", class_support, &new_console, _("\
|
||||
Set creation of new console when creating child process."), _("\
|
||||
Show creation of new console when creating child process."), NULL,
|
||||
|
Loading…
Reference in New Issue
Block a user