* i386-xdep.c, pyr-tdep.c, pyr-xdep.c, remote-vx.c, solib.c,

source.c, symfile.c, dbxread.c:  Output hex with local_hex_string for
Modula-2 support.
This commit is contained in:
John Gilmore 1991-09-19 02:40:29 +00:00
parent 0c4d2cc2b3
commit e3af049306
4 changed files with 67 additions and 45 deletions

View File

@ -1,5 +1,5 @@
/* Low level interface to ptrace, for GDB when running under Unix.
Copyright (C) 1988, 1989 Free Software Foundation, Inc.
/* Pyramid target-dependent code for GDB.
Copyright (C) 1988, 1989, 1991 Free Software Foundation, Inc.
This file is part of GDB.
@ -17,6 +17,9 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "param.h"
#include "defs.h"
/*** Prettier register printing. ***/
/* Print registers in the same format as pyramid's dbx, adb, sdb. */
@ -74,7 +77,7 @@ pyr_do_registers_info (regnum, fpregs)
if (val == 0)
printf_filtered ("0");
else
printf_filtered ("0x%08x %d", val, val);
printf_filtered ("%s %d", local_hex_string_custom(val,"08"), val);
printf_filtered("\n");
}
}

View File

@ -273,17 +273,17 @@ core_file_command (filename, from_tty)
if (*(int *)buf >= 0)
break;
printf ("skipping frame %0x\n", last_frame_address);
printf ("skipping frame %s\n", local_hex_string (last_frame_address));
last_frame_offset -= CONTROL_STACK_FRAME_SIZE;
last_frame_address -= CONTROL_STACK_FRAME_SIZE;
}
reg_offset = last_frame_offset;
#if 1 || defined(PYRAMID_CONTROL_FRAME_DEBUGGING)
printf ("Control stack pointer = 0x%08x\n",
u.u_pcb.pcb_csp);
printf ("offset to control stack %d outermost frame %d (%0x)\n",
reg_stack_offset, reg_offset, last_frame_address);
printf ("Control stack pointer = %s\n",
local_hex_string (u.u_pcb.pcb_csp));
printf ("offset to control stack %d outermost frame %d (%s)\n",
reg_stack_offset, reg_offset, local_hex_string (last_frame_address));
#endif /* PYRAMID_CONTROL_FRAME_DEBUGGING */
#else /* not PYRAMID_CORE */
@ -346,8 +346,8 @@ core_file_command (filename, from_tty)
}
#if 1 || defined(PYRAMID_CONTROL_FRAME_DEBUGGING)
printf ("Providing CSP (%0x) as nominal address of current frame.\n",
last_frame_address);
printf ("Providing CSP (%s) as nominal address of current frame.\n",
local_hex_string(last_frame_address));
#endif PYRAMID_CONTROL_FRAME_DEBUGGING
/* FIXME: Which of the following is correct? */
#if 0

View File

@ -18,6 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include <stdio.h>
#include "defs.h"
#include "param.h"
#include "frame.h"
@ -29,7 +30,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "symtab.h"
#include "symfile.h" /* for struct complaint */
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <signal.h>
@ -654,9 +654,9 @@ vx_files_info ()
void
vx_run_files_info ()
{
printf ("\tRunning %s VxWorks process 0x%x",
printf ("\tRunning %s VxWorks process %s",
vx_running? "child": "attached",
inferior_pid);
local_hex_string(inferior_pid));
if (vx_running)
printf (", function `%s'", vx_running);
printf(".\n");
@ -984,7 +984,7 @@ vx_wait (status)
sleep_ms (200); /* FIXME Don't kill the network too badly */
}
else if (pid != inferior_pid)
fatal ("Bad pid for debugged task: 0x%x\n", pid);
fatal ("Bad pid for debugged task: %s\n", local_hex_string(pid));
} while (pid == 0);
/* FIXME, eventually do more then SIGTRAP on everything... */
@ -1178,7 +1178,7 @@ vx_attach (args, from_tty)
error ("Invalid process-id -- give a single number in decimal or 0xhex");
if (from_tty)
printf ("Attaching pid 0x%x.\n", pid);
printf ("Attaching pid %s.\n", local_hex_string(pid));
bzero ((char *)&ptrace_in, sizeof (ptrace_in));
bzero ((char *)&ptrace_out, sizeof (ptrace_out));
@ -1244,7 +1244,7 @@ vx_detach (args, from_tty)
error ("Argument given to VxWorks \"detach\".");
if (from_tty)
printf ("Detaching pid 0x%x.\n", inferior_pid);
printf ("Detaching pid %s.\n", local_hex_string(inferior_pid));
if (args) /* FIXME, should be possible to leave suspended */
signal = atoi (args);
@ -1281,7 +1281,7 @@ vx_kill (args, from_tty)
error ("Argument given to VxWorks \"kill\".");
if (from_tty)
printf ("Killing pid 0x%x.\n", inferior_pid);
printf ("Killing pid %s.\n", local_hex_string(inferior_pid));
bzero ((char *)&ptrace_in, sizeof (ptrace_in));
bzero ((char *)&ptrace_out, sizeof (ptrace_out));

View File

@ -21,6 +21,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "defs.h"
#include "symtab.h"
#include "param.h"
#include "language.h"
#include "command.h"
#include "gdbcmd.h"
#include "frame.h"
@ -36,7 +37,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "gdbcore.h"
#include "regex.h"
extern char *strstr();
/* If we use this declaration, it breaks because of fucking ANSI "const" stuff
on some systems. We just have to not declare it at all, have it default
to int, and possibly botch on a few systems. Thanks, ANSIholes... */
/* extern char *strstr(); */
extern void set_next_address ();
@ -53,6 +57,14 @@ struct symtab *current_source_symtab;
int current_source_line;
/* Default number of lines to print with commands like "list".
This is based on guessing how many long (i.e. more than chars_per_line
characters) lines there will be. To be completely correct, "list"
and friends should be rewritten to count characters and see where
things are wrapping, but that would be a fair amount of work. */
unsigned lines_to_list = 10;
/* Line number of last line printed. Default for various commands.
current_source_line is usually, but not always, the same as this. */
@ -95,7 +107,7 @@ select_source_symtab (s)
sal = sals.sals[0];
free (sals.sals);
current_source_symtab = sal.symtab;
current_source_line = max (sal.line - (lines_to_list () - 1), 1);
current_source_line = max (sal.line - (lines_to_list - 1), 1);
if (current_source_symtab)
return;
}
@ -364,13 +376,7 @@ source_info ()
if (s->nlines)
printf ("Contains %d lines\n", s->nlines);
switch (s->language) {
case language_c:
printf("Written in the C language.\n");
/* Add more cases here when -Wswitch complains... */
case language_unknown:
break;
}
printf("Source language %s.\n", language_str (s->language));
}
@ -503,7 +509,9 @@ open_source_file (s)
{
/* Replace a path entry of $cdir with the compilation directory name */
#define cdir_len 5
p = strstr (source_path, "$cdir");
/* We cast strstr's result in case an ANSIhole has made it const,
which produces a "required warning" when assigned to a nonconst. */
p = (char *)strstr (source_path, "$cdir");
if (p && (p == path || p[-1] == ':')
&& (p[cdir_len] == ':' || p[cdir_len] == '\0')) {
int len;
@ -788,7 +796,7 @@ list_command (arg, from_tty)
if (current_source_symtab == 0)
error ("No default source file yet. Do \"help list\".");
print_source_lines (current_source_symtab, current_source_line,
current_source_line + lines_to_list (), 0);
current_source_line + lines_to_list, 0);
return;
}
@ -798,7 +806,7 @@ list_command (arg, from_tty)
if (current_source_symtab == 0)
error ("No default source file yet. Do \"help list\".");
print_source_lines (current_source_symtab,
max (first_line_listed - lines_to_list (), 1),
max (first_line_listed - lines_to_list, 1),
first_line_listed, 0);
return;
}
@ -878,14 +886,16 @@ list_command (arg, from_tty)
if (*arg == '*')
{
if (sal.symtab == 0)
error ("No source file for address 0x%x.", sal.pc);
error ("No source file for address %s.", local_hex_string(sal.pc));
sym = find_pc_function (sal.pc);
if (sym)
printf ("0x%x is in %s (%s, line %d).\n",
sal.pc, SYMBOL_NAME (sym), sal.symtab->filename, sal.line);
printf ("%s is in %s (%s, line %d).\n",
local_hex_string(sal.pc),
SYMBOL_NAME (sym), sal.symtab->filename, sal.line);
else
printf ("0x%x is in %s, line %d.\n",
sal.pc, sal.symtab->filename, sal.line);
printf ("%s is in %s, line %d.\n",
local_hex_string(sal.pc),
sal.symtab->filename, sal.line);
}
/* If line was not specified by just a line number,
@ -905,18 +915,18 @@ list_command (arg, from_tty)
error ("No default source file yet. Do \"help list\".");
if (dummy_beg)
print_source_lines (sal_end.symtab,
max (sal_end.line - (lines_to_list () - 1), 1),
max (sal_end.line - (lines_to_list - 1), 1),
sal_end.line + 1, 0);
else if (sal.symtab == 0)
error ("No default source file yet. Do \"help list\".");
else if (no_end)
print_source_lines (sal.symtab,
max (sal.line - (lines_to_list () / 2), 1),
sal.line + (lines_to_list() / 2), 0);
max (sal.line - (lines_to_list / 2), 1),
sal.line + (lines_to_list / 2), 0);
else
print_source_lines (sal.symtab, sal.line,
(dummy_end
? sal.line + lines_to_list ()
? sal.line + lines_to_list
: sal_end.line + 1),
0);
}
@ -965,11 +975,14 @@ line_info (arg, from_tty)
&& find_line_pc_range (sal.symtab, sal.line, &start_pc, &end_pc))
{
if (start_pc == end_pc)
printf ("Line %d of \"%s\" is at pc 0x%x but contains no code.\n",
sal.line, sal.symtab->filename, start_pc);
printf ("Line %d of \"%s\" is at pc %s but contains no code.\n",
sal.line, sal.symtab->filename, local_hex_string(start_pc));
else
printf ("Line %d of \"%s\" starts at pc 0x%x and ends at 0x%x.\n",
sal.line, sal.symtab->filename, start_pc, end_pc);
printf ("Line %d of \"%s\" starts at pc %s",
sal.line, sal.symtab->filename,
local_hex_string(start_pc));
printf (" and ends at %s.\n",
local_hex_string(end_pc));
/* x/i should display this line's code. */
set_next_address (start_pc);
/* Repeating "info line" should do the following line. */
@ -1045,7 +1058,7 @@ forward_search_command (regex, from_tty)
fclose (stream);
print_source_lines (current_source_symtab,
line, line+1, 0);
current_source_line = max (line - lines_to_list () / 2, 1);
current_source_line = max (line - lines_to_list / 2, 1);
return;
}
line++;
@ -1118,7 +1131,7 @@ reverse_search_command (regex, from_tty)
fclose (stream);
print_source_lines (current_source_symtab,
line, line+1, 0);
current_source_line = max (line - lines_to_list () / 2, 1);
current_source_line = max (line - lines_to_list / 2, 1);
return;
}
line--;
@ -1189,5 +1202,11 @@ Lines can be specified in these ways:\n\
*ADDRESS, to list around the line containing that address.\n\
With two args if one is empty it stands for ten lines away from the other arg.");
add_com_alias ("l", "list", class_files, 0);
}
add_show_from_set
(add_set_cmd ("listsize", class_support, var_uinteger,
(char *)&lines_to_list,
"Set number of source lines gdb will list by default.",
&setlist),
&showlist);
}