/* 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 */
if (current_thread->reload_context)
{
+#ifdef __COPY_CONTEXT_SIZE
if (have_saved_context)
{
/* Lie about where the program actually is stopped since cygwin has informed us that
have_saved_context = 0;
}
else
+#endif
{
thread_info *th = current_thread;
th->context.ContextFlags = CONTEXT_DEBUGGER_DR;
if (strncmp (s, "cYg", 3) != 0)
warning (("%s"), s);
}
+#ifdef __COPY_CONTEXT_SIZE
else
{
/* Got a cygwin signal marker. A cygwin signal is followed by the signal number
current_event.dwThreadId = retval;
}
}
+#endif
if (s)
xfree (s);
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,