/* 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 */
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;
regcache_raw_supply (current_regcache, r, core_reg_sect + mappings[r]);
}
+static int
+open_symbol_file_object (void *from_ttyp)
+{
+ return 0;
+}
+
+static int
+in_dynsym_resolve_code (CORE_ADDR pc)
+{
+ return 0;
+}
+
static void
init_win32_ops (void)
{
win32_so_ops.solib_create_inferior_hook = win32_solib_create_inferior_hook;
win32_so_ops.special_symbol_handling = win32_special_symbol_handling;
win32_so_ops.current_sos = win32_current_sos;
- win32_so_ops.open_symbol_file_object = NULL;
- win32_so_ops.in_dynsym_resolve_code = NULL;
+ win32_so_ops.open_symbol_file_object = open_symbol_file_object;
+ win32_so_ops.in_dynsym_resolve_code = in_dynsym_resolve_code;
/* FIXME: Don't do this here. *_gdbarch_init() should set so_ops. */
current_target_so_ops = &win32_so_ops;
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,