aboutsummaryrefslogtreecommitdiff
path: root/gdb/printcmd.c
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-06-13 02:32:05 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-06-13 02:32:05 +0000
commitb0f61d04f617f32c4ee1e8b7fb35b6b79a854c98 (patch)
treec028d09274548739bc91574049743fbcf29ab7b0 /gdb/printcmd.c
parent8357834fbec086011dbb4b445f63c03c9f4c6c1e (diff)
downloadgdb-b0f61d04f617f32c4ee1e8b7fb35b6b79a854c98.zip
gdb-b0f61d04f617f32c4ee1e8b7fb35b6b79a854c98.tar.gz
gdb-b0f61d04f617f32c4ee1e8b7fb35b6b79a854c98.tar.bz2
* valprint.c (print_hex_chars): Use local_hex_format_{pre,suf}fix.
* printcmd.c (print_scalar_formatted): Use val_print_type_code_int.
Diffstat (limited to 'gdb/printcmd.c')
-rw-r--r--gdb/printcmd.c46
1 files changed, 16 insertions, 30 deletions
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index c6d4a6c..d40a2f8 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -355,39 +355,25 @@ print_scalar_formatted (valaddr, type, format, size, stream)
LONGEST val_long;
int len = TYPE_LENGTH (type);
- if (size == 'g' && sizeof (LONGEST) < 8
- && format == 'x')
+ if (len > sizeof (LONGEST)
+ && (format == 't'
+ || format == 'c'
+ || format == 'o'
+ || format == 'u'
+ || format == 'd'
+ || format == 'x'))
{
- /* ok, we're going to have to get fancy here. Assumption: a
- long is four bytes. FIXME. */
- unsigned long v1, v2;
-
- v1 = unpack_long (builtin_type_long, valaddr);
- v2 = unpack_long (builtin_type_long, valaddr + 4);
-
-#if TARGET_BYTE_ORDER == LITTLE_ENDIAN
- /* Swap the two for printing */
- {
- unsigned long tmp;
-
- tmp = v1;
- v1 = v2;
- v2 = tmp;
- }
-#endif
-
- switch (format)
- {
- case 'x':
- fprintf_filtered (stream, local_hex_format_custom("08x%08"), v1, v2);
- break;
- default:
- error ("Output size \"g\" unimplemented for format \"%c\".",
- format);
- }
+ /* We can't print it normally, but we can print it in hex.
+ Printing it in the wrong radix is more useful than saying
+ "use /x, you dummy". */
+ /* FIXME: we could also do octal or binary if that was the
+ desired format. */
+ /* FIXME: we should be using the size field to give us a minimum
+ field width to print. */
+ val_print_type_code_int (type, valaddr, stream);
return;
}
-
+
val_long = unpack_long (type, valaddr);
/* If value is unsigned, truncate it in case negative. */