2000-02-23 01:25:43 +01:00
|
|
|
/* MI Command Set - disassemble commands.
|
2017-01-01 07:50:51 +01:00
|
|
|
Copyright (C) 2000-2017 Free Software Foundation, Inc.
|
2000-02-23 07:19:22 +01:00
|
|
|
Contributed by Cygnus Solutions (a Red Hat company).
|
2000-02-23 01:25:43 +01:00
|
|
|
|
|
|
|
This file is part of GDB.
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
2007-08-23 20:08:50 +02:00
|
|
|
the Free Software Foundation; either version 3 of the License, or
|
2000-02-23 01:25:43 +01:00
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
2007-08-23 20:08:50 +02:00
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
2000-02-23 01:25:43 +01:00
|
|
|
|
|
|
|
#include "defs.h"
|
2009-07-02 19:17:42 +02:00
|
|
|
#include "arch-utils.h"
|
2000-02-23 01:25:43 +01:00
|
|
|
#include "target.h"
|
|
|
|
#include "value.h"
|
|
|
|
#include "mi-cmds.h"
|
|
|
|
#include "mi-getopt.h"
|
2002-09-30 17:57:26 +02:00
|
|
|
#include "ui-out.h"
|
|
|
|
#include "disasm.h"
|
2002-04-08 02:38:10 +02:00
|
|
|
|
2012-03-06 23:48:53 +01:00
|
|
|
/* The arguments to be passed on the command line and parsed here are
|
2000-02-23 01:25:43 +01:00
|
|
|
either:
|
|
|
|
|
|
|
|
START-ADDRESS: address to start the disassembly at.
|
|
|
|
END-ADDRESS: address to end the disassembly at.
|
|
|
|
|
|
|
|
or:
|
|
|
|
|
|
|
|
FILENAME: The name of the file where we want disassemble from.
|
|
|
|
LINE: The line around which we want to disassemble. It will
|
|
|
|
disassemble the function that contins that line.
|
2011-01-12 16:02:12 +01:00
|
|
|
HOW_MANY: Number of disassembly lines to display. With source, it
|
2000-02-23 01:25:43 +01:00
|
|
|
is the number of disassembly lines only, not counting the source
|
|
|
|
lines.
|
|
|
|
|
|
|
|
always required:
|
|
|
|
|
2011-01-12 16:02:12 +01:00
|
|
|
MODE: 0 -- disassembly.
|
2015-08-15 06:45:54 +02:00
|
|
|
1 -- disassembly and source (with deprecated source-centric view).
|
2011-01-12 16:02:12 +01:00
|
|
|
2 -- disassembly and opcodes.
|
2015-08-15 06:45:54 +02:00
|
|
|
3 -- disassembly, source-centric and opcodes.
|
|
|
|
4 -- disassembly, and source (with pc-centric view).
|
|
|
|
5 -- disassembly, source (pc-centric) and opcodes. */
|
2012-03-06 23:48:53 +01:00
|
|
|
|
2008-06-25 17:15:42 +02:00
|
|
|
void
|
-Wwrite-strings: Constify mi_cmd_argv_ftype's 'command' parameter
-Wwrite-strings flags this attempt to pass a literal to a "char *":
mi_cmd_interpreter_exec ("-interpreter-exec", argv, 2);
Fix that by constifying mi_cmd_argv_ftype's 'command' parameter and
adjusting all MI commands.
gdb/ChangeLog:
2017-04-05 Pedro Alves <palves@redhat.com>
* mi/mi-cmd-break.c (mi_cmd_break_insert_1, mi_cmd_break_insert)
(mi_cmd_dprintf_insert, mi_cmd_break_passcount)
(mi_cmd_break_watch, mi_cmd_break_commands): Constify 'command'
parameter.
* mi/mi-cmd-catch.c (mi_cmd_catch_assert, mi_cmd_catch_exception)
(mi_cmd_catch_load, mi_cmd_catch_unload): Constify cmd' parameter.
* mi/mi-cmd-disas.c (mi_cmd_disassemble): Constify 'command'
parameter.
* mi/mi-cmd-env.c (mi_cmd_env_pwd, mi_cmd_env_cd, mi_cmd_env_path)
(mi_cmd_env_dir, mi_cmd_inferior_tty_set, _cmd_inferior_tty_show)
* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_file)
(mi_cmd_file_list_exec_source_files)
(mi_cmd_file_list_shared_libraries): Constify 'command' parameter.
* mi/mi-cmd-info.c (mi_cmd_info_ada_exceptions)
(mi_cmd_info_gdb_mi_command, mi_cmd_info_os): Constify 'command'
parameter.
* mi/mi-cmd-stack.c (mi_cmd_enable_frame_filters)
(mi_cmd_stack_list_frames, mi_cmd_stack_info_depth)
(mi_cmd_stack_list_locals, mi_cmd_stack_list_args)
(mi_cmd_stack_list_variables, mi_cmd_stack_select_frame)
(mi_cmd_stack_info_frame): Constify 'command' parameter.
* mi/mi-cmd-target.c (mi_cmd_target_file_get)
(mi_cmd_target_file_put, mi_cmd_target_file_delete): Constify
'command' parameter.
* mi/mi-cmd-var.c (mi_cmd_var_create, mi_cmd_var_delete)
(mi_cmd_var_set_format, mi_cmd_var_set_visualizer)
(mi_cmd_var_set_frozen, mi_cmd_var_show_format)
(mi_cmd_var_info_num_children, mi_cmd_var_list_children)
(mi_cmd_var_info_type, mi_cmd_var_info_path_expression)
(mi_cmd_var_info_expression, mi_cmd_var_show_attributes)
(mi_cmd_var_evaluate_expression, mi_cmd_var_assign)
(mi_cmd_var_update, mi_cmd_enable_pretty_printing)
(mi_cmd_var_set_update_range): Constify 'command' parameter.
* mi/mi-cmds.h (mi_cmd_argv_ftype): Constify 'command' parameter.
* mi/mi-interp.c (mi_cmd_interpreter_exec): Constify 'command'
parameter.
* mi/mi-main.c (mi_cmd_gdb_exit, mi_cmd_exec_next)
(mi_cmd_exec_next_instruction, mi_cmd_exec_step)
(mi_cmd_exec_step_instruction, mi_cmd_exec_finish)
(mi_cmd_exec_return ,mi_cmd_exec_jump, mi_cmd_exec_continue)
(mi_cmd_exec_interrupt, mi_cmd_exec_run, mi_cmd_target_detach)
(mi_cmd_target_flash_erase, mi_cmd_thread_select)
(mi_cmd_thread_list_ids, mi_cmd_thread_info)
(mi_cmd_list_thread_groups, mi_cmd_data_list_register_names)
(mi_cmd_data_list_changed_registers)
(mi_cmd_data_write_register_values)
(mi_cmd_data_evaluate_expression, mi_cmd_data_read_memory)
(mi_cmd_data_read_memory_bytes, mi_cmd_data_write_memory)
(mi_cmd_data_write_memory_bytes, mi_cmd_enable_timings)
(mi_cmd_list_features, mi_cmd_list_target_features)
(mi_cmd_add_inferior, mi_cmd_remove_inferior)
(mi_cmd_trace_define_variable, mi_cmd_trace_list_variables)
(mi_cmd_trace_find, mi_cmd_trace_save, mi_cmd_trace_start)
(mi_cmd_trace_status, mi_cmd_trace_stop, mi_cmd_ada_task_info)
(mi_cmd_trace_frame_collected): Constify 'command'
parameter.
* mi/mi-symbol-cmds.c (mi_cmd_symbol_list_lines): Constify
'command' parameter.
2017-04-05 20:21:34 +02:00
|
|
|
mi_cmd_disassemble (const char *command, char **argv, int argc)
|
2000-02-23 01:25:43 +01:00
|
|
|
{
|
2009-07-02 19:17:42 +02:00
|
|
|
struct gdbarch *gdbarch = get_current_arch ();
|
2011-08-04 Pedro Alves <pedro@codesourcery.com>
* ui-out.h (uiout): Rename to ...
(current_uiout): ... this.
* ui-out.c (uiout): Rename to ...
(current_uiout): ... this.
* ada-lang.c (print_it_exception, print_one_exception)
(print_mention_exception): Adjust.
* breakpoint.c (watchpoint_check): Adjust.
(print_breakpoint_location, print_one_breakpoint, breakpoint_1)
(default_collect_info, watchpoints_info, print_one_catch_fork)
(print_one_catch_vfork, print_one_catch_syscall)
(print_one_catch_exec, mention, print_it_ranged_breakpoint)
(print_one_ranged_breakpoint, print_mention_ranged_breakpoint)
(print_it_watchpoint, print_mention_watchpoint)
(print_it_masked_watchpoint, print_mention_masked_watchpoint)
(print_it_exception_catchpoint, print_one_exception_catchpoint)
(print_mention_exception_catchpoint, say_where, bkpt_print_it)
(bkpt_print_mention, momentary_bkpt_print_it)
(tracepoint_print_mention, update_static_tracepoint)
(tracepoints_info, save_breakpoints): Adjust.
* cli-out.c (field_separator): Adjust.
* cp-abi.c (list_cp_abis, show_cp_abi_cmd): Adjust.
* exceptions.c (catch_exceptions_with_msg, catch_errors): Adjust.
* frame.c (get_current_frame): Adjust.
* infcmd.c (run_command_1, print_return_value): Adjust.
* inferior.c (inferior_command, info_inferiors_command): Adjust.
* infrun.c (print_end_stepping_range_reason): Adjust.
(print_signal_exited_reason, print_exited_reason): Adjust.
(print_signal_received_reason, print_no_history_reason): Adjust.
* interps.c (interp_set): Adjust.
* osdata.c (info_osdata_command): Adjust.
* progspace.c (maintenance_info_program_spaces_command): Adjust.
* remote-fileio.c (remote_fileio_request): Adjust.
* remote.c (show_remote_cmd): Adjust.
* solib.c (info_sharedlibrary_command): Adjust.
* source.c (print_source_lines_base): Adjust.
* stack.c (print_stack_frame): Adjust.
(do_gdb_disassembly, print_frame_info, print_frame): Adjust.
* symfile-mem.c (add_vsyscall_page): Adjust.
* symfile.c (load_progress, generic_load)
(print_transfer_performance): Adjust.
* thread.c (info_threads_command, restore_selected_frame)
(thread_command): Adjust.
* top.c (make_cleanup_restore_ui_file): Adjust.
* tracepoint.c (tvariables_info_1, trace_status_mi, tfind_1)
(print_one_static_tracepoint_marker): Adjust.
* cli/cli-cmds.c (print_disassembly): Adjust.
* cli/cli-decode.c (print_doc_line): Adjust.
* cli/cli-interp.c (safe_execute_command): Adjust.
* cli/cli-logging.c (set_logging_redirect, pop_output_files)
(handle_redirections): Adjust.
* cli/cli-script.c (show_user_1): Adjust.
* cli/cli-setshow.c (do_setshow_command, cmd_show_list): Adjust.
* mi/mi-cmd-break.c (breakpoint_notify): Adjust.
* mi/mi-cmd-disas.c (mi_cmd_disassemble): Adjust.
* mi/mi-cmd-env.c (mi_cmd_env_pwd, mi_cmd_env_path)
(mi_cmd_env_dir): Adjust.
* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_file)
(print_partial_file_name, mi_cmd_file_list_exec_source_files): Adjust.
* mi/mi-cmd-stack.c (mi_cmd_stack_list_frames)
(mi_cmd_stack_info_depth, mi_cmd_stack_list_args)
(list_args_or_locals): Adjust.
* mi/mi-cmd-var.c (print_varobj, mi_cmd_var_create)
(mi_cmd_var_delete, mi_cmd_var_set_format, mi_cmd_var_set_frozen)
(mi_cmd_var_show_format, mi_cmd_var_info_num_children)
(mi_cmd_var_list_children, mi_cmd_var_info_type)
(mi_cmd_var_info_path_expression, mi_cmd_var_info_expression)
(mi_cmd_var_show_attributes, mi_cmd_var_evaluate_expression)
(mi_cmd_var_assign, mi_cmd_var_update, varobj_update_one): Adjust.
* mi/mi-interp.c (mi_on_normal_stop): Adjust.
* mi/mi-main.c (mi_cmd_gdb_exit, mi_cmd_thread_select)
(mi_cmd_thread_list_ids, mi_cmd_thread_info, print_one_inferior)
(list_available_thread_groups, mi_cmd_list_thread_groups)
(mi_cmd_data_list_register_names)
(mi_cmd_data_list_changed_registers)
(mi_cmd_data_list_register_values, get_register)
(mi_cmd_data_evaluate_expression, mi_cmd_data_read_memory)
(mi_cmd_data_read_memory_bytes, mi_cmd_list_features)
(mi_cmd_list_target_features, mi_cmd_add_inferior)
(mi_execute_command, mi_load_progress): Adjust.
* mi/mi-symbol-cmds.c (mi_cmd_symbol_list_lines): Adjust.
* python/py-auto-load.c (print_script, info_auto_load_scripts):
Adjust.
* python/py-breakpoint.c (bppy_get_commands): Adjust.
* tui/tui-interp.c (tui_command_loop): Adjust.
* tui/tui-io.c (tui_setup_io, tui_initialize_io): Adjust.
2011-08-04 21:10:14 +02:00
|
|
|
struct ui_out *uiout = current_uiout;
|
2000-02-23 01:25:43 +01:00
|
|
|
CORE_ADDR start;
|
|
|
|
|
Introduce gdb_disassembly_flags
For some reason I ended up staring at some of the "int flags" in
btrace-related code, and I got confused because I had no clue what the
flags where supposed to indicate.
Fix that by using enum_flags, so that:
#1 - it's clear from the type what the flags are about, and
#2 - the compiler can catch mismatching mistakes
gdb/ChangeLog:
2017-09-04 Pedro Alves <palves@redhat.com>
* cli/cli-cmds.c (print_disassembly, disassemble_current_function)
(disassemble_command): Use gdb_disassembly_flags instead of bare
int.
* disasm.c (gdb_pretty_print_disassembler::pretty_print_insn)
(dump_insns, do_mixed_source_and_assembly_deprecated)
(do_mixed_source_and_assembly, do_assembly_only, gdb_disassembly):
Use gdb_disassembly_flags instead of bare int.
* disasm.h (DISASSEMBLY_SOURCE_DEPRECATED, DISASSEMBLY_RAW_INSN)
(DISASSEMBLY_OMIT_FNAME, DISASSEMBLY_FILENAME)
(DISASSEMBLY_OMIT_PC, DISASSEMBLY_SOURCE)
(DISASSEMBLY_SPECULATIVE): No longer macros. Instead they're...
(enum gdb_disassembly_flag): ... values of this new enumeration.
(gdb_disassembly_flags): Define.
(gdb_disassembly)
(gdb_pretty_print_disassembler::pretty_print_insn): Use it.
* mi/mi-cmd-disas.c (mi_cmd_disassemble): Use
gdb_disassembly_flags instead of bare int.
* record-btrace.c (btrace_insn_history)
(record_btrace_insn_history, record_btrace_insn_history_range)
(record_btrace_insn_history_from): Use gdb_disassembly_flags
instead of bare int.
* record.c (get_insn_history_modifiers, cmd_record_insn_history):
Use gdb_disassembly_flags instead of bare int.
* target-debug.h (target_debug_print_gdb_disassembly_flags):
Define.
* target-delegates.c: Regenerate.
* target.c (target_insn_history, target_insn_history_from)
(target_insn_history_range): Use gdb_disassembly_flags instead of
bare int.
* target.h: Include "disasm.h".
(struct target_ops) <to_insn_history, to_insn_history_from,
to_insn_history_range>: Use gdb_disassembly_flags instead of bare
int.
(target_insn_history, target_insn_history_from)
(target_insn_history_range): Use gdb_disassembly_flags instead of
bare int.
2017-09-04 19:23:22 +02:00
|
|
|
int mode;
|
|
|
|
gdb_disassembly_flags disasm_flags;
|
2000-02-23 01:25:43 +01:00
|
|
|
struct symtab *s;
|
|
|
|
|
2001-03-20 18:19:04 +01:00
|
|
|
/* Which options have we processed ... */
|
2000-02-23 01:25:43 +01:00
|
|
|
int file_seen = 0;
|
|
|
|
int line_seen = 0;
|
|
|
|
int num_seen = 0;
|
|
|
|
int start_seen = 0;
|
|
|
|
int end_seen = 0;
|
|
|
|
|
2001-03-20 18:19:04 +01:00
|
|
|
/* ... and their corresponding value. */
|
|
|
|
char *file_string = NULL;
|
|
|
|
int line_num = -1;
|
|
|
|
int how_many = -1;
|
|
|
|
CORE_ADDR low = 0;
|
|
|
|
CORE_ADDR high = 0;
|
|
|
|
|
2012-03-06 23:48:53 +01:00
|
|
|
/* Options processing stuff. */
|
2011-12-17 06:53:59 +01:00
|
|
|
int oind = 0;
|
|
|
|
char *oarg;
|
2000-02-23 01:25:43 +01:00
|
|
|
enum opt
|
|
|
|
{
|
2002-04-08 02:43:22 +02:00
|
|
|
FILE_OPT, LINE_OPT, NUM_OPT, START_OPT, END_OPT
|
|
|
|
};
|
2012-03-06 23:48:53 +01:00
|
|
|
static const struct mi_opt opts[] =
|
|
|
|
{
|
|
|
|
{"f", FILE_OPT, 1},
|
|
|
|
{"l", LINE_OPT, 1},
|
|
|
|
{"n", NUM_OPT, 1},
|
|
|
|
{"s", START_OPT, 1},
|
|
|
|
{"e", END_OPT, 1},
|
|
|
|
{ 0, 0, 0 }
|
|
|
|
};
|
2000-02-23 01:25:43 +01:00
|
|
|
|
|
|
|
/* Get the options with their arguments. Keep track of what we
|
2012-03-06 23:48:53 +01:00
|
|
|
encountered. */
|
2000-02-23 01:25:43 +01:00
|
|
|
while (1)
|
|
|
|
{
|
2011-01-12 22:09:39 +01:00
|
|
|
int opt = mi_getopt ("-data-disassemble", argc, argv, opts,
|
2011-12-17 06:53:59 +01:00
|
|
|
&oind, &oarg);
|
2000-02-23 01:25:43 +01:00
|
|
|
if (opt < 0)
|
|
|
|
break;
|
|
|
|
switch ((enum opt) opt)
|
|
|
|
{
|
|
|
|
case FILE_OPT:
|
2017-05-04 01:28:08 +02:00
|
|
|
file_string = oarg;
|
2000-02-23 01:25:43 +01:00
|
|
|
file_seen = 1;
|
|
|
|
break;
|
|
|
|
case LINE_OPT:
|
2011-12-17 06:53:59 +01:00
|
|
|
line_num = atoi (oarg);
|
2000-02-23 01:25:43 +01:00
|
|
|
line_seen = 1;
|
|
|
|
break;
|
|
|
|
case NUM_OPT:
|
2011-12-17 06:53:59 +01:00
|
|
|
how_many = atoi (oarg);
|
2000-02-23 01:25:43 +01:00
|
|
|
num_seen = 1;
|
|
|
|
break;
|
|
|
|
case START_OPT:
|
2011-12-17 06:53:59 +01:00
|
|
|
low = parse_and_eval_address (oarg);
|
2000-02-23 01:25:43 +01:00
|
|
|
start_seen = 1;
|
|
|
|
break;
|
|
|
|
case END_OPT:
|
2011-12-17 06:53:59 +01:00
|
|
|
high = parse_and_eval_address (oarg);
|
2000-02-23 01:25:43 +01:00
|
|
|
end_seen = 1;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
2011-12-17 06:53:59 +01:00
|
|
|
argv += oind;
|
|
|
|
argc -= oind;
|
2000-02-23 01:25:43 +01:00
|
|
|
|
|
|
|
/* Allow only filename + linenum (with how_many which is not
|
2012-03-06 23:48:53 +01:00
|
|
|
required) OR start_addr + end_addr. */
|
2000-02-23 01:25:43 +01:00
|
|
|
|
|
|
|
if (!((line_seen && file_seen && num_seen && !start_seen && !end_seen)
|
|
|
|
|| (line_seen && file_seen && !num_seen && !start_seen && !end_seen)
|
2002-04-08 02:43:22 +02:00
|
|
|
|| (!line_seen && !file_seen && !num_seen && start_seen && end_seen)))
|
2011-01-12 22:09:39 +01:00
|
|
|
error (_("-data-disassemble: Usage: ( [-f filename -l linenum [-n "
|
2011-01-12 16:02:12 +01:00
|
|
|
"howmany]] | [-s startaddr -e endaddr]) [--] mode."));
|
2000-02-23 01:25:43 +01:00
|
|
|
|
|
|
|
if (argc != 1)
|
2011-01-12 22:09:39 +01:00
|
|
|
error (_("-data-disassemble: Usage: [-f filename -l linenum "
|
2011-01-12 16:02:12 +01:00
|
|
|
"[-n howmany]] [-s startaddr -e endaddr] [--] mode."));
|
2000-02-23 01:25:43 +01:00
|
|
|
|
2011-01-12 16:02:12 +01:00
|
|
|
mode = atoi (argv[0]);
|
2015-08-15 06:45:54 +02:00
|
|
|
if (mode < 0 || mode > 5)
|
|
|
|
error (_("-data-disassemble: Mode argument must be in the range 0-5."));
|
2000-02-23 01:25:43 +01:00
|
|
|
|
2012-03-06 23:48:53 +01:00
|
|
|
/* Convert the mode into a set of disassembly flags. */
|
2011-01-12 16:02:12 +01:00
|
|
|
|
2015-08-15 06:45:54 +02:00
|
|
|
disasm_flags = 0; /* Initialize here for -Wall. */
|
|
|
|
switch (mode)
|
|
|
|
{
|
|
|
|
case 0:
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
disasm_flags |= DISASSEMBLY_SOURCE_DEPRECATED;
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
disasm_flags |= DISASSEMBLY_RAW_INSN;
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
disasm_flags |= DISASSEMBLY_SOURCE_DEPRECATED | DISASSEMBLY_RAW_INSN;
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
disasm_flags |= DISASSEMBLY_SOURCE;
|
|
|
|
break;
|
|
|
|
case 5:
|
|
|
|
disasm_flags |= DISASSEMBLY_SOURCE | DISASSEMBLY_RAW_INSN;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
gdb_assert_not_reached ("bad disassembly mode");
|
|
|
|
}
|
2002-04-08 02:38:10 +02:00
|
|
|
|
2000-02-23 01:25:43 +01:00
|
|
|
/* We must get the function beginning and end where line_num is
|
2012-03-06 23:48:53 +01:00
|
|
|
contained. */
|
2000-02-23 01:25:43 +01:00
|
|
|
|
|
|
|
if (line_seen && file_seen)
|
|
|
|
{
|
|
|
|
s = lookup_symtab (file_string);
|
|
|
|
if (s == NULL)
|
2011-01-12 22:09:39 +01:00
|
|
|
error (_("-data-disassemble: Invalid filename."));
|
2000-02-23 01:25:43 +01:00
|
|
|
if (!find_line_pc (s, line_num, &start))
|
2011-01-12 22:09:39 +01:00
|
|
|
error (_("-data-disassemble: Invalid line number"));
|
2000-02-23 01:25:43 +01:00
|
|
|
if (find_pc_partial_function (start, NULL, &low, &high) == 0)
|
2011-01-12 22:09:39 +01:00
|
|
|
error (_("-data-disassemble: "
|
2011-01-06 01:57:05 +01:00
|
|
|
"No function contains specified address"));
|
2000-02-23 01:25:43 +01:00
|
|
|
}
|
|
|
|
|
2009-07-02 19:17:42 +02:00
|
|
|
gdb_disassembly (gdbarch, uiout,
|
2011-01-12 16:02:12 +01:00
|
|
|
disasm_flags,
|
2009-07-17 17:55:54 +02:00
|
|
|
how_many, low, high);
|
2000-02-23 01:25:43 +01:00
|
|
|
}
|