/* MI Command Set - disassemble commands.
- Copyright (C) 2000, 2001, 2002, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright (C) 2000-2002, 2007-2012 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
This file is part of GDB.
#include "ui-out.h"
#include "disasm.h"
-/* The arguments to be passed on the command line and parsed here are:
-
+/* The arguments to be passed on the command line and parsed here are
either:
START-ADDRESS: address to start the disassembly at.
2 -- disassembly and opcodes.
3 -- disassembly, source and opcodes.
*/
+
void
mi_cmd_disassemble (char *command, char **argv, int argc)
{
CORE_ADDR high = 0;
struct cleanup *cleanups = make_cleanup (null_cleanup, NULL);
- /* Options processing stuff. */
- int optind = 0;
- char *optarg;
+ /* Options processing stuff. */
+ int oind = 0;
+ char *oarg;
enum opt
{
FILE_OPT, LINE_OPT, NUM_OPT, START_OPT, END_OPT
};
- static 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 }
- };
+ 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 }
+ };
/* Get the options with their arguments. Keep track of what we
- encountered. */
+ encountered. */
while (1)
{
int opt = mi_getopt ("-data-disassemble", argc, argv, opts,
- &optind, &optarg);
+ &oind, &oarg);
if (opt < 0)
break;
switch ((enum opt) opt)
{
case FILE_OPT:
- file_string = xstrdup (optarg);
+ file_string = xstrdup (oarg);
file_seen = 1;
make_cleanup (xfree, file_string);
break;
case LINE_OPT:
- line_num = atoi (optarg);
+ line_num = atoi (oarg);
line_seen = 1;
break;
case NUM_OPT:
- how_many = atoi (optarg);
+ how_many = atoi (oarg);
num_seen = 1;
break;
case START_OPT:
- low = parse_and_eval_address (optarg);
+ low = parse_and_eval_address (oarg);
start_seen = 1;
break;
case END_OPT:
- high = parse_and_eval_address (optarg);
+ high = parse_and_eval_address (oarg);
end_seen = 1;
break;
}
}
- argv += optind;
- argc -= optind;
+ argv += oind;
+ argc -= oind;
/* Allow only filename + linenum (with how_many which is not
- required) OR start_addr + and_addr */
+ required) OR start_addr + end_addr. */
if (!((line_seen && file_seen && num_seen && !start_seen && !end_seen)
|| (line_seen && file_seen && !num_seen && !start_seen && !end_seen)
if (mode < 0 || mode > 3)
error (_("-data-disassemble: Mode argument must be 0, 1, 2, or 3."));
- /* Convert the mode into a set of disassembly flags */
+ /* Convert the mode into a set of disassembly flags. */
disasm_flags = 0;
if (mode & 0x1)
disasm_flags |= DISASSEMBLY_RAW_INSN;
/* We must get the function beginning and end where line_num is
- contained. */
+ contained. */
if (line_seen && file_seen)
{