prints how GDB would undo the N-th previous instruction, and if N is
positive, it prints how GDB will redo the N-th following instruction.
+maintenance info frame-unwinders
+ List the frame unwinders currently in effect, starting with the highest
+ priority.
+
* MI changes
** mi now reports 'no-history' as a stop reason when hitting the end of the
If DWARF frame unwinders are not supported for a particular target
architecture, then enabling this flag does not cause them to be used.
+@kindex maint info frame-unwinders
+@item maint info frame-unwinders
+List the frame unwinders currently in effect, starting with the highest priority.
+
@kindex maint set worker-threads
@kindex maint show worker-threads
@item maint set worker-threads
#include "target.h"
#include "gdbarch.h"
#include "dwarf2/frame-tailcall.h"
+#include "cli/cli-cmds.h"
struct frame_unwind_table_entry
{
register_type (gdbarch, regnum), addr);
return reg_val;
}
+
+/* Implement "maintenance info frame-unwinders" command. */
+
+static void
+maintenance_info_frame_unwinders (const char *args, int from_tty)
+{
+ struct gdbarch *gdbarch = target_gdbarch ();
+ struct frame_unwind_table *table = get_frame_unwind_table (gdbarch);
+
+ for (struct frame_unwind_table_entry *entry = table->list; entry != NULL;
+ entry = entry->next)
+ {
+ const char *name = entry->unwinder->name;
+ const char *type = frame_type_str (entry->unwinder->type);
+
+ gdb_printf (gdb_stdout, "%-16s\t%-16s\n", name, type);
+ }
+}
+
+void _initialize_frame_unwind ();
+void
+_initialize_frame_unwind ()
+{
+ /* Add "maint info frame-unwinders". */
+ add_cmd ("frame-unwinders",
+ class_maintenance,
+ maintenance_info_frame_unwinders,
+ _("List the frame unwinders currently in effect, "
+ "starting with the highest priority."),
+ &maintenanceinfolist);
+}
SENTINEL_FRAME
};
+/* Return a string representation of TYPE. */
+
+extern const char *frame_type_str (frame_type type);
+
/* A wrapper for "frame_info *". frame_info objects are invalidated
whenever reinit_frame_cache is called. This class arranges to
invalidate the pointer when appropriate. This is done to help