"Thread Information Block is %s.\n"), value);
}
+
+static int w32_prefix_command_valid = 0;
+void
+init_w32_command_list (void)
+{
+ if (!w32_prefix_command_valid)
+ {
+ add_basic_prefix_cmd
+ ("w32", class_info,
+ _("Print information specific to Win32 debugging."),
+ &info_w32_cmdlist, "info w32 ", 0, &infolist);
+ w32_prefix_command_valid = 1;
+ }
+}
+
/* Implementation of `gdbarch_gdb_signal_to_target' for Windows. */
static int
static const struct enum_value_name exception_values[] =
{
{ 0x40000015, "FATAL_APP_EXIT" },
+ { 0x4000001E, "WX86_SINGLE_STEP" },
+ { 0x4000001F, "WX86_BREAKPOINT" },
{ 0x40010005, "DBG_CONTROL_C" },
{ 0x40010008, "DBG_CONTROL_BREAK" },
{ 0x80000002, "DATATYPE_MISALIGNMENT" },
const gdb_byte *name = &idata_contents[name_va - idata_section_va];
- /* Make sure we don't overshoot the end of the section with the streq. */
- if (name + sizeof (CYGWIN_DLL_NAME) > end)
- continue;
-
- /* Finally, check if this is the dll name we are looking for. */
- if (streq ((const char *) name, CYGWIN_DLL_NAME))
- return true;
+ /* Make sure we don't overshoot the end of the section with the
+ streq. */
+ if (name + sizeof (CYGWIN_DLL_NAME) <= end)
+ {
+ /* Finally, check if this is the dll name we are looking for. */
+ if (streq ((const char *) name, CYGWIN_DLL_NAME))
+ return true;
+ }
iter += sizeof (pe_import_directory_entry);
}
- return false;
+ return false;
}
void _initialize_windows_tdep ();
windows_gdbarch_data_handle
= gdbarch_data_register_post_init (init_windows_gdbarch_data);
- add_basic_prefix_cmd ("w32", class_info,
- _("Print information specific to Win32 debugging."),
- &info_w32_cmdlist, "info w32 ", 0, &infolist);
-
+ init_w32_command_list ();
add_cmd ("thread-information-block", class_info, display_tib,
_("Display thread information block."),
&info_w32_cmdlist);