X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fprintcmd.c;h=92e06efc804cff015c84f6309e642325e506d32f;hb=5bb367b1d911e5893a504ebd2ac301f55cd3ec79;hp=629af99dc45661f8fbd73c5ec561dbfa15e368d1;hpb=e2ad119d2f303ac7205e3d6c9ed67c6d524c2f61;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/printcmd.c b/gdb/printcmd.c index 629af99dc4..92e06efc80 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -1,7 +1,7 @@ /* Print values for GNU debugger GDB. - Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1993, 1994, 1995, - 1998, 2000 Free Software Foundation, Inc. + Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, + 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GDB. @@ -191,10 +191,7 @@ static void sym_info (char *, int); past the specification and past all whitespace following it. */ static struct format_data -decode_format (string_ptr, oformat, osize) - char **string_ptr; - int oformat; - int osize; +decode_format (char **string_ptr, int oformat, int osize) { struct format_data val; register char *p = *string_ptr; @@ -252,7 +249,7 @@ decode_format (string_ptr, oformat, osize) val.size = osize ? 'h' : osize; else /* Bad value for TARGET_PTR_BIT */ - abort (); + internal_error (__FILE__, __LINE__, "failed internal consistency check"); break; case 'f': /* Floating point has to be word or giantword. */ @@ -282,11 +279,8 @@ decode_format (string_ptr, oformat, osize) This is used to pad hex numbers so they line up. */ static void -print_formatted (val, format, size, stream) - register value_ptr val; - register int format; - int size; - struct ui_file *stream; +print_formatted (register value_ptr val, register int format, int size, + struct ui_file *stream) { struct type *type = check_typedef (VALUE_TYPE (val)); int len = TYPE_LENGTH (type); @@ -349,12 +343,8 @@ print_formatted (val, format, size, stream) with a format. */ void -print_scalar_formatted (valaddr, type, format, size, stream) - char *valaddr; - struct type *type; - int format; - int size; - struct ui_file *stream; +print_scalar_formatted (char *valaddr, struct type *type, int format, int size, + struct ui_file *stream) { LONGEST val_long; unsigned int len = TYPE_LENGTH (type); @@ -466,7 +456,7 @@ print_scalar_formatted (valaddr, type, format, size, stream) break; case 0: - abort (); + internal_error (__FILE__, __LINE__, "failed internal consistency check"); case 't': /* Binary; 't' stands for "two". */ @@ -526,8 +516,7 @@ print_scalar_formatted (valaddr, type, format, size, stream) `info lines' uses this. */ void -set_next_address (addr) - CORE_ADDR addr; +set_next_address (CORE_ADDR addr) { next_address = addr; @@ -546,11 +535,8 @@ set_next_address (addr) settings of the demangle and asm_demangle variables. */ void -print_address_symbolic (addr, stream, do_demangle, leadin) - CORE_ADDR addr; - struct ui_file *stream; - int do_demangle; - char *leadin; +print_address_symbolic (CORE_ADDR addr, struct ui_file *stream, int do_demangle, + char *leadin) { char *name = NULL; char *filename = NULL; @@ -730,22 +716,21 @@ build_address_symbolic (CORE_ADDR addr, /* IN */ /* Print address ADDR on STREAM. USE_LOCAL means the same thing as for print_longest. */ void -print_address_numeric (addr, use_local, stream) - CORE_ADDR addr; - int use_local; - struct ui_file *stream; +print_address_numeric (CORE_ADDR addr, int use_local, struct ui_file *stream) { - /* Truncate address to the size of a target pointer, avoiding shifts + /* Truncate address to the size of a target address, avoiding shifts larger or equal than the width of a CORE_ADDR. The local - variable PTR_BIT stops the compiler reporting a shift overflow - when it won't occure. */ + variable ADDR_BIT stops the compiler reporting a shift overflow + when it won't occur. */ /* NOTE: This assumes that the significant address information is kept in the least significant bits of ADDR - the upper bits were either zero or sign extended. Should ADDRESS_TO_POINTER() or some ADDRESS_TO_PRINTABLE() be used to do the conversion? */ - int ptr_bit = TARGET_PTR_BIT; - if (ptr_bit < (sizeof (CORE_ADDR) * HOST_CHAR_BIT)) - addr &= ((CORE_ADDR) 1 << ptr_bit) - 1; + + int addr_bit = TARGET_ADDR_BIT; + + if (addr_bit < (sizeof (CORE_ADDR) * HOST_CHAR_BIT)) + addr &= ((CORE_ADDR) 1 << addr_bit) - 1; print_longest (stream, 'x', use_local, (ULONGEST) addr); } @@ -754,9 +739,7 @@ print_address_numeric (addr, use_local, stream) after the number. */ void -print_address (addr, stream) - CORE_ADDR addr; - struct ui_file *stream; +print_address (CORE_ADDR addr, struct ui_file *stream) { print_address_numeric (addr, 1, stream); print_address_symbolic (addr, stream, asm_demangle, " "); @@ -768,10 +751,7 @@ print_address (addr, stream) or not. */ void -print_address_demangle (addr, stream, do_demangle) - CORE_ADDR addr; - struct ui_file *stream; - int do_demangle; +print_address_demangle (CORE_ADDR addr, struct ui_file *stream, int do_demangle) { if (addr == 0) { @@ -803,10 +783,7 @@ static struct type *examine_g_type; Fetch it from memory and print on gdb_stdout. */ static void -do_examine (fmt, addr, sect) - struct format_data fmt; - CORE_ADDR addr; - asection *sect; +do_examine (struct format_data fmt, CORE_ADDR addr, asection *sect) { register char format = 0; register char size; @@ -887,9 +864,7 @@ do_examine (fmt, addr, sect) } static void -validate_format (fmt, cmdname) - struct format_data fmt; - char *cmdname; +validate_format (struct format_data fmt, char *cmdname) { if (fmt.size != 0) error ("Size letters are meaningless in \"%s\" command.", cmdname); @@ -907,10 +882,7 @@ validate_format (fmt, cmdname) */ static void -print_command_1 (exp, inspect, voidprint) - char *exp; - int inspect; - int voidprint; +print_command_1 (char *exp, int inspect, int voidprint) { struct expression *expr; register struct cleanup *old_chain = 0; @@ -1003,9 +975,7 @@ print_command_1 (exp, inspect, voidprint) /* ARGSUSED */ static void -print_command (exp, from_tty) - char *exp; - int from_tty; +print_command (char *exp, int from_tty) { print_command_1 (exp, 0, 1); } @@ -1013,9 +983,7 @@ print_command (exp, from_tty) /* Same as print, except in epoch, it gets its own window */ /* ARGSUSED */ static void -inspect_command (exp, from_tty) - char *exp; - int from_tty; +inspect_command (char *exp, int from_tty) { extern int epoch_interface; @@ -1025,18 +993,14 @@ inspect_command (exp, from_tty) /* Same as print, except it doesn't print void results. */ /* ARGSUSED */ static void -call_command (exp, from_tty) - char *exp; - int from_tty; +call_command (char *exp, int from_tty) { print_command_1 (exp, 0, 0); } /* ARGSUSED */ void -output_command (exp, from_tty) - char *exp; - int from_tty; +output_command (char *exp, int from_tty) { struct expression *expr; register struct cleanup *old_chain; @@ -1071,9 +1035,7 @@ output_command (exp, from_tty) /* ARGSUSED */ static void -set_command (exp, from_tty) - char *exp; - int from_tty; +set_command (char *exp, int from_tty) { struct expression *expr = parse_expression (exp); register struct cleanup *old_chain = @@ -1084,9 +1046,7 @@ set_command (exp, from_tty) /* ARGSUSED */ static void -sym_info (arg, from_tty) - char *arg; - int from_tty; +sym_info (char *arg, int from_tty) { struct minimal_symbol *msymbol; struct objfile *objfile; @@ -1131,9 +1091,7 @@ sym_info (arg, from_tty) /* ARGSUSED */ static void -address_info (exp, from_tty) - char *exp; - int from_tty; +address_info (char *exp, int from_tty) { register struct symbol *sym; register struct minimal_symbol *msymbol; @@ -1345,9 +1303,7 @@ address_info (exp, from_tty) } void -x_command (exp, from_tty) - char *exp; - int from_tty; +x_command (char *exp, int from_tty) { struct expression *expr; struct format_data fmt; @@ -1380,8 +1336,8 @@ x_command (exp, from_tty) val = value_ind (val); /* In rvalue contexts, such as this, functions are coerced into pointers to functions. This makes "x/i main" work. */ - if ( /* last_format == 'i' - && */ TYPE_CODE (VALUE_TYPE (val)) == TYPE_CODE_FUNC + if (/* last_format == 'i' && */ + TYPE_CODE (VALUE_TYPE (val)) == TYPE_CODE_FUNC && VALUE_LVAL (val) == lval_memory) next_address = VALUE_ADDRESS (val); else @@ -1424,9 +1380,7 @@ x_command (exp, from_tty) Specify the expression. */ static void -display_command (exp, from_tty) - char *exp; - int from_tty; +display_command (char *exp, int from_tty) { struct format_data fmt; register struct expression *expr; @@ -1484,11 +1438,10 @@ display_command (exp, from_tty) } static void -free_display (d) - struct display *d; +free_display (struct display *d) { - free ((PTR) d->exp); - free ((PTR) d); + xfree (d->exp); + xfree (d); } /* Clear out the display_chain. @@ -1496,23 +1449,22 @@ free_display (d) the types stored in many expressions. */ void -clear_displays () +clear_displays (void) { register struct display *d; while ((d = display_chain) != NULL) { - free ((PTR) d->exp); + xfree (d->exp); display_chain = d->next; - free ((PTR) d); + xfree (d); } } /* Delete the auto-display number NUM. */ static void -delete_display (num) - int num; +delete_display (int num) { register struct display *d1, *d; @@ -1544,9 +1496,7 @@ delete_display (num) Specify the element numbers. */ static void -undisplay_command (args, from_tty) - char *args; - int from_tty; +undisplay_command (char *args, int from_tty) { register char *p = args; register char *p1; @@ -1584,8 +1534,7 @@ undisplay_command (args, from_tty) or if the display is disabled. */ static void -do_one_display (d) - struct display *d; +do_one_display (struct display *d) { int within_current_scope; @@ -1670,7 +1619,7 @@ do_one_display (d) evaluated in the current scope. */ void -do_displays () +do_displays (void) { register struct display *d; @@ -1682,8 +1631,7 @@ do_displays () This is done when there is an error or a signal. */ void -disable_display (num) - int num; +disable_display (int num) { register struct display *d; @@ -1697,7 +1645,7 @@ disable_display (num) } void -disable_current_display () +disable_current_display (void) { if (current_display_number >= 0) { @@ -1709,9 +1657,7 @@ disable_current_display () } static void -display_info (ignore, from_tty) - char *ignore; - int from_tty; +display_info (char *ignore, int from_tty) { register struct display *d; @@ -1738,9 +1684,7 @@ Num Enb Expression\n"); } static void -enable_display (args, from_tty) - char *args; - int from_tty; +enable_display (char *args, int from_tty) { register char *p = args; register char *p1; @@ -1779,9 +1723,7 @@ enable_display (args, from_tty) /* ARGSUSED */ static void -disable_display_command (args, from_tty) - char *args; - int from_tty; +disable_display_command (char *args, int from_tty) { register char *p = args; register char *p1; @@ -1814,10 +1756,8 @@ disable_display_command (args, from_tty) specified by a struct symbol. */ void -print_variable_value (var, frame, stream) - struct symbol *var; - struct frame_info *frame; - struct ui_file *stream; +print_variable_value (struct symbol *var, struct frame_info *frame, + struct ui_file *stream) { value_ptr val = read_var_value (var, frame); @@ -1833,11 +1773,8 @@ print_variable_value (var, frame, stream) according to the stack frame". At least for VAX, i386, isi. */ void -print_frame_args (func, fi, num, stream) - struct symbol *func; - struct frame_info *fi; - int num; - struct ui_file *stream; +print_frame_args (struct symbol *func, struct frame_info *fi, int num, + struct ui_file *stream) { struct block *b = NULL; int nsyms = 0; @@ -2055,12 +1992,8 @@ print_frame_args (func, fi, num, stream) the first nameless arg). */ static void -print_frame_nameless_args (fi, start, num, first, stream) - struct frame_info *fi; - long start; - int num; - int first; - struct ui_file *stream; +print_frame_nameless_args (struct frame_info *fi, long start, int num, + int first, struct ui_file *stream) { int i; CORE_ADDR argsaddr; @@ -2098,9 +2031,7 @@ print_frame_nameless_args (fi, start, num, first, stream) /* ARGSUSED */ static void -printf_command (arg, from_tty) - char *arg; - int from_tty; +printf_command (char *arg, int from_tty) { register char *f = NULL; register char *s = arg; @@ -2146,11 +2077,7 @@ printf_command (arg, from_tty) *f++ = '\\'; break; case 'a': -#ifdef __STDC__ *f++ = '\a'; -#else - *f++ = '\007'; /* Bell */ -#endif break; case 'b': *f++ = '\b'; @@ -2331,7 +2258,8 @@ printf_command (arg, from_tty) /* Copy the string contents into a string inside GDB. */ str = (char *) alloca (j + 1); - read_memory (tem, str, j); + if (j != 0) + read_memory (tem, str, j); str[j] = 0; printf_filtered (current_substring, str); @@ -2381,9 +2309,7 @@ printf_command (arg, from_tty) /* ARGSUSED */ static void -disassemble_command (arg, from_tty) - char *arg; - int from_tty; +disassemble_command (char *arg, int from_tty) { CORE_ADDR low, high; char *name; @@ -2506,9 +2432,7 @@ disassemble_command (arg, from_tty) on STREAM. Returns length of the instruction, in bytes. */ static int -print_insn (memaddr, stream) - CORE_ADDR memaddr; - struct ui_file *stream; +print_insn (CORE_ADDR memaddr, struct ui_file *stream) { if (TARGET_BYTE_ORDER == BIG_ENDIAN) TARGET_PRINT_INSN_INFO->endian = BFD_ENDIAN_BIG; @@ -2524,7 +2448,7 @@ print_insn (memaddr, stream) void -_initialize_printcmd () +_initialize_printcmd (void) { current_display_number = -1;