*** empty log message ***
[deliverable/binutils-gdb.git] / gdb / scm-valprint.c
index 3e6ce5f029169eb89bd32a53ead007149dea958c..95185d416eb67d265216c2b8cf3c6ecbf13add29 100644 (file)
@@ -1,7 +1,7 @@
 /* Scheme/Guile language support routines for GDB, the GNU debugger.
 
-   Copyright (C) 1995, 1996, 1998, 1999, 2000, 2001, 2005, 2007, 2008, 2009
-   Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1998, 1999, 2000, 2001, 2005, 2007, 2008, 2009,
+   2010 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -62,9 +62,9 @@ scm_inferior_print (struct type *type, LONGEST value, struct ui_file *stream,
     {
       /* XXX: Should we cache these symbols?  */
       gdb_output_sym =
-       lookup_symbol_global ("gdb_output", NULL, NULL, VAR_DOMAIN);
+       lookup_symbol_global ("gdb_output", NULL, VAR_DOMAIN);
       gdb_output_len_sym =
-       lookup_symbol_global ("gdb_output_length", NULL, NULL, VAR_DOMAIN);
+       lookup_symbol_global ("gdb_output_length", NULL, VAR_DOMAIN);
 
       if ((gdb_output_sym == NULL) || (gdb_output_len_sym == NULL))
        ret = -1;
@@ -133,6 +133,7 @@ scm_scmlist_print (struct type *type, LONGEST svalue,
                   const struct value_print_options *options)
 {
 #define SCM_SIZE (TYPE_LENGTH (type))
+#define SCM_BYTE_ORDER (gdbarch_byte_order (get_type_arch (type)))
   unsigned int more = options->print_max;
   if (recurse > 6)
     {
@@ -158,6 +159,7 @@ scm_scmlist_print (struct type *type, LONGEST svalue,
       fputs_filtered (" . ", stream);
       scm_scmval_print (type, svalue, stream, recurse + 1, options);
     }
+#undef SCM_BYTE_ORDER
 #undef SCM_SIZE
 }
 
@@ -166,11 +168,13 @@ scm_ipruk (char *hdr, struct type *type, LONGEST ptr,
           struct ui_file *stream)
 {
 #define SCM_SIZE (TYPE_LENGTH (type))
+#define SCM_BYTE_ORDER (gdbarch_byte_order (get_type_arch (type)))
   fprintf_filtered (stream, "#<unknown-%s", hdr);
   if (SCM_CELLP (ptr))
     fprintf_filtered (stream, " (0x%lx . 0x%lx) @",
                      (long) SCM_CAR (ptr), (long) SCM_CDR (ptr));
-  fprintf_filtered (stream, " 0x%s>", paddr_nz (ptr));
+  fprintf_filtered (stream, " 0x%s>", phex_nz (ptr, SCM_SIZE));
+#undef SCM_BYTE_ORDER
 #undef SCM_SIZE
 }
 
@@ -179,7 +183,10 @@ scm_scmval_print (struct type *type, LONGEST svalue,
                  struct ui_file *stream, int recurse,
                  const struct value_print_options *options)
 {
+  struct gdbarch *gdbarch = get_type_arch (type);
+
 #define SCM_SIZE (TYPE_LENGTH (type))
+#define SCM_BYTE_ORDER (gdbarch_byte_order (gdbarch))
 taloop:
   switch (7 & (int) svalue)
     {
@@ -193,7 +200,7 @@ taloop:
       if (SCM_ICHRP (svalue))
        {
          svalue = SCM_ICHR (svalue);
-         scm_printchar (svalue, builtin_type (current_gdbarch)->builtin_char,
+         scm_printchar (svalue, builtin_type (gdbarch)->builtin_char,
                         stream);
          break;
        }
@@ -243,7 +250,7 @@ taloop:
                             (sizet) LENGTH (name),
                           port);
 #endif
-             fprintf_filtered (stream, " #X%s>", paddr_nz (svalue));
+             fprintf_filtered (stream, " #X%s>", phex_nz (svalue, SCM_SIZE));
              break;
            }
        case scm_tcs_cons_imcar:
@@ -305,13 +312,14 @@ taloop:
            int len = SCM_LENGTH (svalue);
            int i;
            LONGEST elements = SCM_CDR (svalue);
+           LONGEST val;
            fputs_filtered ("#(", stream);
            for (i = 0; i < len; ++i)
              {
                if (i > 0)
                  fputs_filtered (" ", stream);
-               scm_scmval_print (type, scm_get_field (elements, i, SCM_SIZE),
-                                 stream, recurse + 1, options);
+               val = scm_get_field (elements, i, SCM_SIZE, SCM_BYTE_ORDER);
+               scm_scmval_print (type, val, stream, recurse + 1, options);
              }
            fputs_filtered (")", stream);
          }
@@ -401,6 +409,7 @@ taloop:
        }
       break;
     }
+#undef SCM_BYTE_ORDER
 #undef SCM_SIZE
 }
 
@@ -412,7 +421,9 @@ scm_val_print (struct type *type, const gdb_byte *valaddr,
 {
   if (is_scmvalue_type (type))
     {
-      LONGEST svalue = extract_signed_integer (valaddr, TYPE_LENGTH (type));
+      enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
+      LONGEST svalue
+       = extract_signed_integer (valaddr, TYPE_LENGTH (type), byte_order);
 
       if (scm_inferior_print (type, svalue, stream, recurse, options) >= 0)
        {
This page took 0.027122 seconds and 4 git commands to generate.