/* GDB CLI commands.
- Copyright (C) 2000-2019 Free Software Foundation, Inc.
+ Copyright (C) 2000-2020 Free Software Foundation, Inc.
+ Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
This file is part of GDB.
clear_internalvar (var_signal);
if (WIFEXITED (exit_status))
set_internalvar_integer (var_code, WEXITSTATUS (exit_status));
+#ifdef __MINGW32__
+ else if (WIFSIGNALED (exit_status) && WTERMSIG (exit_status) == -1)
+ {
+ /* The -1 condition can happen on MinGW, if we don't recognize
+ the fatal exception code encoded in the exit status; see
+ gdbsupport/gdb_wait.c. We don't want to lose information in
+ the exit status in that case. Record it as a normal exit
+ with the full exit status, including the higher 0xC0000000
+ bits. */
+ set_internalvar_integer (var_code, exit_status);
+ }
+#endif
else if (WIFSIGNALED (exit_status))
set_internalvar_integer (var_signal, WTERMSIG (exit_status));
else
gdb_disassembly_flags flags)
{
#if defined(TUI)
- if (!tui_is_window_visible (DISASSEM_WIN))
+ if (tui_is_window_visible (DISASSEM_WIN))
+ tui_show_assembly (gdbarch, low);
+ else
#endif
{
printf_filtered ("Dump of assembler code ");
}
printf_filtered ("End of assembler dump.\n");
}
-#if defined(TUI)
- else
- {
- tui_show_assembly (gdbarch, low);
- }
-#endif
}
/* Subroutine of disassemble_command to simplify it.
disassemble_command (const char *arg, int from_tty)
{
struct gdbarch *gdbarch = get_current_arch ();
+ struct obj_section *section;
CORE_ADDR low, high;
const char *name;
CORE_ADDR pc;
}
pc = value_as_address (parse_to_comma_and_eval (&p));
+
+ /* ROCM: get the gdbarch from the objfile, if found */
+ section = find_pc_overlay (pc);
+ if (section == NULL)
+ section = find_pc_section (pc);
+ if (section != NULL)
+ gdbarch = get_objfile_arch (section->objfile);
+
if (p[0] == ',')
++p;
if (p[0] == '\0')