Fix many sins which will come up in 32 bit x 64 bit GDB, and
authorJim Kingdon <jkingdon@engr.sgi.com>
Thu, 27 Jan 1994 01:12:06 +0000 (01:12 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Thu, 27 Jan 1994 01:12:06 +0000 (01:12 +0000)
various miscellaneous things discovered in the process:
* printcmd.c, defs.h (print_address_numeric): New function.
* c-valprint.c (c_val_print), ch-valprint.c (chill_val_print)
breakpoint.c (describe_other_breakpoints, breakpoint_1, mention),
cp-valprint.c (cplus_print_value), infcmd.c (jump_command),
printcmd.c, stack.c, symfile.c, symmisc.c, valprint.c:
Use it.
* utils.c, defs.h (gdb_print_address): New function.
* expprint (dump_expression), gdbtypes.h: Use it.
* breakpoint.c (describe_other_breakpoints),
symmisc.c (dump_symtab, print_symbol):
Use filtered not unfiltered I/O.
(remove_breakpoints): Remove BREAKPOINT_DEBUG code.  Might as well
just run gdb under a debugger for this (and it had problems with
printing addresses, how to print b->shadow, etc.).
* buildsym.c (make_blockvector), core.c (memory_error),
exec.c (print_section_info), maint.c (print_section_table),
mdebugread.c (parse_procedure), solib.c, source.c, symfile.c,
symmisc.c, symtab.c, valops.c, valprint.c, xcoffexec.c:
Add comments saying code is broken.  Marked with "FIXME-32x64".
* dbxread.c (process_one_symbol), partial-stab.h (default),
remote-vx.c (vx_run_files_info):
Don't cast int being passed to local_hex_string.
* symmisc.c (print_symbol): Don't cast long being passed to %lx.
* symtab.h (general_symbol_info): Add comment about SYMBOL_VALUE
only being a long.
* symmisc.c (print_symbol): Print "offset" in message for LOC_ARG
and LOC_LOCAL.
* printcmd.c (print_address): Remove #if 0 code with ADDR_BITS_REMOVE.
* source.c: Include <sys/types.h> regardless of USG.

gdb/cp-valprint.c
gdb/gdbtypes.c
gdb/stack.c
gdb/symmisc.c

index 2617d794b7cbc1e1863cb4ffc9abcf3320b03a8c..07ba9fb6ef4dcbeefc6b4fe083baac06acb31e1e 100644 (file)
@@ -353,6 +353,8 @@ cplus_print_value (type, valaddr, stream, format, recurse, pretty, dont_print)
 
   for (i = 0; i < n_baseclasses; i++)
     {
+      /* FIXME-32x64--assumes that a target pointer can fit in a char *.
+        Fix it by nuking baseclass_addr.  */
       char *baddr;
       int err;
       char *basename;
@@ -394,7 +396,7 @@ cplus_print_value (type, valaddr, stream, format, recurse, pretty, dont_print)
       if (err != 0)
        {
          fprintf_filtered (stream, "<invalid address ");
-         print_address_numeric (baddr, stream);
+         print_address_numeric ((CORE_ADDR) baddr, stream);
          fprintf_filtered (stream, ">");
        }
       else
index 7795c13fd999219991a6ce1ef7e5d6e8a3d4479e..12caa7a124c6a211414724de48d8e1c58384f852 100644 (file)
@@ -1224,7 +1224,8 @@ dump_fn_fieldlists (type, spaces)
          printfi_filtered (spaces + 4, "[%d] physname '%s' (",
                            overload_idx,
                            TYPE_FN_FIELD_PHYSNAME (f, overload_idx));
-         gdb_print_address (TYPE_FN_FIELD_PHYSNAME (f, overload_idx));
+         gdb_print_address (TYPE_FN_FIELD_PHYSNAME (f, overload_idx),
+                            gdb_stdout);
          printf_filtered (")\n");
          printfi_filtered (spaces + 8, "type ");
          gdb_print_address (TYPE_FN_FIELD_TYPE (f, overload_idx), gdb_stdout);
@@ -1427,12 +1428,12 @@ recursive_dump_type (type, spaces)
     }
   puts_filtered ("\n");
   printfi_filtered (spaces, "nfields %d ", TYPE_NFIELDS (type));
-  gdb_print_address (TYPE_FIELDS (type));
+  gdb_print_address (TYPE_FIELDS (type), gdb_stdout);
   puts_filtered ("\n");
   for (idx = 0; idx < TYPE_NFIELDS (type); idx++)
     {
       printfi_filtered (spaces + 2,
-                       "[%d] bitpos %d bitsize %d type "
+                       "[%d] bitpos %d bitsize %d type ",
                        idx, TYPE_FIELD_BITPOS (type, idx),
                        TYPE_FIELD_BITSIZE (type, idx));
       gdb_print_address (TYPE_FIELD_TYPE (type, idx), gdb_stdout);
@@ -1440,7 +1441,7 @@ recursive_dump_type (type, spaces)
                       TYPE_FIELD_NAME (type, idx) != NULL
                       ? TYPE_FIELD_NAME (type, idx)
                       : "<NULL>");
-      gdb_print_address (TYPE_FIELD_NAME (type, idx));
+      gdb_print_address (TYPE_FIELD_NAME (type, idx), gdb_stdout);
       printf_filtered (")\n");
       if (TYPE_FIELD_TYPE (type, idx) != NULL)
        {
@@ -1460,14 +1461,14 @@ recursive_dump_type (type, spaces)
       case TYPE_CODE_METHOD:
       case TYPE_CODE_FUNC:
        printfi_filtered (spaces, "arg_types ");
-       gdb_print_address (TYPE_ARG_TYPES (type));
+       gdb_print_address (TYPE_ARG_TYPES (type), gdb_stdout);
        puts_filtered ("\n");
        print_arg_types (TYPE_ARG_TYPES (type), spaces);
        break;
 
       case TYPE_CODE_STRUCT:
        printfi_filtered (spaces, "cplus_stuff ");
-       gdb_print_address (TYPE_CPLUS_SPECIFIC (type));
+       gdb_print_address (TYPE_CPLUS_SPECIFIC (type), gdb_stdout);
        puts_filtered ("\n");
        print_cplus_stuff (type, spaces);
        break;
@@ -1477,7 +1478,7 @@ recursive_dump_type (type, spaces)
           the value.  Pick cplus_struct_type, even though we know it isn't
           any particular one. */
        printfi_filtered (spaces, "type_specific ");
-       gdb_print_address (TYPE_CPLUS_SPECIFIC (type));
+       gdb_print_address (TYPE_CPLUS_SPECIFIC (type), gdb_stdout);
        if (TYPE_CPLUS_SPECIFIC (type) != NULL)
          {
            printf_filtered (" (unknown data form)");
index 4d4a004efa3effb433769878d434cceb84bfec84..f85fa1a593bb22b37aad46f8e1d9fd38a9696178 100644 (file)
@@ -287,7 +287,7 @@ print_frame_info (fi, level, source, args)
       if (addressprint)
        if (fi->pc != sal.pc || !sal.symtab)
          {
-           print_address_numeric (fi->pc);
+           print_address_numeric (fi->pc, gdb_stdout);
            printf_filtered (" in ");
          }
       fprintf_symbol_filtered (gdb_stdout, funname ? funname : "??", funlang,
@@ -497,8 +497,7 @@ frame_info (addr_exp, from_tty)
 
   if (!addr_exp && selected_frame_level >= 0)
     {
-      printf_filtered ("Stack level %d, frame at "
-                      selected_frame_level);
+      printf_filtered ("Stack level %d, frame at ", selected_frame_level);
       print_address_numeric (FRAME_FP(frame), gdb_stdout);
       printf_filtered (":\n");
     }
index bfc8dc5cb11b75539a9d04edaadab6ecedfecd0a..daca178bc54df9c776db9c79927724507bc19c12 100644 (file)
@@ -175,7 +175,7 @@ dump_objfile (objfile)
        {
          printf_filtered ("%s at ",
                           psymtab -> filename);
-         gdb_print_address (psymtab);
+         gdb_print_address (psymtab, gdb_stdout);
          printf_filtered (", ");
          if (psymtab -> objfile != objfile)
            {
@@ -194,7 +194,7 @@ dump_objfile (objfile)
           symtab = symtab->next)
        {
          printf_filtered ("%s at ", symtab -> filename);
-         gdb_print_address (symtab);
+         gdb_print_address (symtab, gdb_stdout);
          printf_filtered (", ");
          if (symtab -> objfile != objfile)
            {
@@ -403,7 +403,7 @@ dump_symtab (objfile, symtab, outfile)
        }
       if (BLOCK_GCC_COMPILED(b))
        fprintf_filtered (outfile, " gcc%d compiled", BLOCK_GCC_COMPILED(b));
-      fputc_filtered ('\n', outfile);
+      fprintf_filtered ('\n', outfile);
       blen = BLOCK_NSYMS (b);
       for (j = 0; j < blen; j++)
        {