* valprint.c (print_longest): Clarify comment about use_local.
* printcmd.c, defs.h (print_address_numeric), callers in symmisc.c, symfile.c, stack.c, source.c, remote.c, infcmd.c, cp-valprint.c, core.c, ch-valprint.c, c-valprint.c, breakpoint.c, exec.c: New argument use_local. * source.c (identify_source_line): Use filtered output. Use print_address_numeric.
This commit is contained in:
parent
e16b9023f0
commit
d24c05991f
9 changed files with 78 additions and 44 deletions
|
@ -1,5 +1,13 @@
|
||||||
Wed May 4 06:56:03 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
|
Wed May 4 06:56:03 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
|
||||||
|
|
||||||
|
* valprint.c (print_longest): Clarify comment about use_local.
|
||||||
|
* printcmd.c, defs.h (print_address_numeric), callers in
|
||||||
|
symmisc.c, symfile.c, stack.c, source.c, remote.c, infcmd.c,
|
||||||
|
cp-valprint.c, core.c, ch-valprint.c, c-valprint.c, breakpoint.c,
|
||||||
|
exec.c: New argument use_local.
|
||||||
|
* source.c (identify_source_line): Use filtered output. Use
|
||||||
|
print_address_numeric.
|
||||||
|
|
||||||
* core.c (memory_error), symtab.c (cplusplus_hint, decode_line_1),
|
* core.c (memory_error), symtab.c (cplusplus_hint, decode_line_1),
|
||||||
language.c (type_error, range_error): Use filtered output.
|
language.c (type_error, range_error): Use filtered output.
|
||||||
* utils.c (error_begin): Update comment to tell people to use
|
* utils.c (error_begin): Update comment to tell people to use
|
||||||
|
|
|
@ -1648,7 +1648,7 @@ breakpoint_1 (bnum, allflag)
|
||||||
printf_filtered ("\n\032\032field 6\n");
|
printf_filtered ("\n\032\032field 6\n");
|
||||||
|
|
||||||
printf_filtered ("\tstop only in stack frame at ");
|
printf_filtered ("\tstop only in stack frame at ");
|
||||||
print_address_numeric (b->frame, gdb_stdout);
|
print_address_numeric (b->frame, 1, gdb_stdout);
|
||||||
printf_filtered ("\n");
|
printf_filtered ("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1760,7 +1760,7 @@ describe_other_breakpoints (pc)
|
||||||
(others > 1) ? "," : ((others == 1) ? " and" : ""));
|
(others > 1) ? "," : ((others == 1) ? " and" : ""));
|
||||||
}
|
}
|
||||||
printf_filtered ("also set at pc ");
|
printf_filtered ("also set at pc ");
|
||||||
print_address_numeric (pc, gdb_stdout);
|
print_address_numeric (pc, 1, gdb_stdout);
|
||||||
printf_filtered (".\n");
|
printf_filtered (".\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2001,7 +2001,7 @@ mention (b)
|
||||||
break;
|
break;
|
||||||
case bp_breakpoint:
|
case bp_breakpoint:
|
||||||
printf_filtered ("Breakpoint %d at ", b->number);
|
printf_filtered ("Breakpoint %d at ", b->number);
|
||||||
print_address_numeric (b->address, gdb_stdout);
|
print_address_numeric (b->address, 1, gdb_stdout);
|
||||||
if (b->source_file)
|
if (b->source_file)
|
||||||
printf_filtered (": file %s, line %d.",
|
printf_filtered (": file %s, line %d.",
|
||||||
b->source_file, b->line_number);
|
b->source_file, b->line_number);
|
||||||
|
|
|
@ -172,7 +172,7 @@ c_val_print (type, valaddr, address, stream, format, deref_ref, recurse,
|
||||||
|
|
||||||
if (addressprint && format != 's')
|
if (addressprint && format != 's')
|
||||||
{
|
{
|
||||||
print_address_numeric (addr, stream);
|
print_address_numeric (addr, 1, stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For a pointer to char or unsigned char, also print the string
|
/* For a pointer to char or unsigned char, also print the string
|
||||||
|
@ -255,7 +255,7 @@ c_val_print (type, valaddr, address, stream, format, deref_ref, recurse,
|
||||||
fprintf_filtered (stream, "@");
|
fprintf_filtered (stream, "@");
|
||||||
print_address_numeric
|
print_address_numeric
|
||||||
(extract_address (valaddr,
|
(extract_address (valaddr,
|
||||||
TARGET_PTR_BIT / HOST_CHAR_BIT), stream);
|
TARGET_PTR_BIT / HOST_CHAR_BIT), 1, stream);
|
||||||
if (deref_ref)
|
if (deref_ref)
|
||||||
fputs_filtered (": ", stream);
|
fputs_filtered (": ", stream);
|
||||||
}
|
}
|
||||||
|
|
|
@ -159,7 +159,7 @@ chill_val_print (type, valaddr, address, stream, format, deref_ref, recurse,
|
||||||
}
|
}
|
||||||
if (addressprint && format != 's')
|
if (addressprint && format != 's')
|
||||||
{
|
{
|
||||||
print_address_numeric (addr, stream);
|
print_address_numeric (addr, 1, stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For a pointer to char or unsigned char, also print the string
|
/* For a pointer to char or unsigned char, also print the string
|
||||||
|
@ -269,6 +269,7 @@ chill_val_print (type, valaddr, address, stream, format, deref_ref, recurse,
|
||||||
fprintf_filtered (stream, "LOC(");
|
fprintf_filtered (stream, "LOC(");
|
||||||
print_address_numeric
|
print_address_numeric
|
||||||
(extract_address (valaddr, TARGET_PTR_BIT / HOST_CHAR_BIT),
|
(extract_address (valaddr, TARGET_PTR_BIT / HOST_CHAR_BIT),
|
||||||
|
1,
|
||||||
stream);
|
stream);
|
||||||
fprintf_filtered (stream, ")");
|
fprintf_filtered (stream, ")");
|
||||||
if (deref_ref)
|
if (deref_ref)
|
||||||
|
|
|
@ -144,7 +144,7 @@ memory_error (status, memaddr)
|
||||||
was out of bounds. */
|
was out of bounds. */
|
||||||
error_begin ();
|
error_begin ();
|
||||||
printf_filtered ("Cannot access memory at address ");
|
printf_filtered ("Cannot access memory at address ");
|
||||||
print_address_numeric (memaddr, gdb_stdout);
|
print_address_numeric (memaddr, 1, gdb_stdout);
|
||||||
printf_filtered (".\n");
|
printf_filtered (".\n");
|
||||||
return_to_top_level (RETURN_ERROR);
|
return_to_top_level (RETURN_ERROR);
|
||||||
}
|
}
|
||||||
|
@ -152,7 +152,7 @@ memory_error (status, memaddr)
|
||||||
{
|
{
|
||||||
error_begin ();
|
error_begin ();
|
||||||
printf_filtered ("Error accessing memory address ");
|
printf_filtered ("Error accessing memory address ");
|
||||||
print_address_numeric (memaddr, gdb_stdout);
|
print_address_numeric (memaddr, 1, gdb_stdout);
|
||||||
printf_filtered (": %s.\n",
|
printf_filtered (": %s.\n",
|
||||||
safe_strerror (status));
|
safe_strerror (status));
|
||||||
return_to_top_level (RETURN_ERROR);
|
return_to_top_level (RETURN_ERROR);
|
||||||
|
|
|
@ -411,7 +411,7 @@ cplus_print_value (type, valaddr, stream, format, recurse, pretty, dont_print)
|
||||||
if (err != 0)
|
if (err != 0)
|
||||||
{
|
{
|
||||||
fprintf_filtered (stream, "<invalid address ");
|
fprintf_filtered (stream, "<invalid address ");
|
||||||
print_address_numeric ((CORE_ADDR) baddr, stream);
|
print_address_numeric ((CORE_ADDR) baddr, 1, stream);
|
||||||
fprintf_filtered (stream, ">");
|
fprintf_filtered (stream, ">");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -613,10 +613,12 @@ print_address_symbolic (addr, stream, do_demangle, leadin)
|
||||||
fputs_filtered (">", stream);
|
fputs_filtered (">", stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Print address ADDR on STREAM. */
|
/* Print address ADDR on STREAM. USE_LOCAL means the same thing as for
|
||||||
|
print_longest. */
|
||||||
void
|
void
|
||||||
print_address_numeric (addr, stream)
|
print_address_numeric (addr, use_local, stream)
|
||||||
CORE_ADDR addr;
|
CORE_ADDR addr;
|
||||||
|
int use_local;
|
||||||
GDB_FILE *stream;
|
GDB_FILE *stream;
|
||||||
{
|
{
|
||||||
/* This assumes a CORE_ADDR can fit in a LONGEST. Probably a safe
|
/* This assumes a CORE_ADDR can fit in a LONGEST. Probably a safe
|
||||||
|
@ -634,7 +636,7 @@ print_address (addr, stream)
|
||||||
CORE_ADDR addr;
|
CORE_ADDR addr;
|
||||||
GDB_FILE *stream;
|
GDB_FILE *stream;
|
||||||
{
|
{
|
||||||
print_address_numeric (addr, stream);
|
print_address_numeric (addr, 1, stream);
|
||||||
print_address_symbolic (addr, stream, asm_demangle, " ");
|
print_address_symbolic (addr, stream, asm_demangle, " ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -655,7 +657,7 @@ print_address_demangle (addr, stream, do_demangle)
|
||||||
}
|
}
|
||||||
else if (addressprint)
|
else if (addressprint)
|
||||||
{
|
{
|
||||||
print_address_numeric (addr, stream);
|
print_address_numeric (addr, 1, stream);
|
||||||
print_address_symbolic (addr, stream, do_demangle, " ");
|
print_address_symbolic (addr, stream, do_demangle, " ");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -983,7 +985,8 @@ address_info (exp, from_tty)
|
||||||
fprintf_symbol_filtered (gdb_stdout, exp,
|
fprintf_symbol_filtered (gdb_stdout, exp,
|
||||||
current_language->la_language, DMGL_ANSI);
|
current_language->la_language, DMGL_ANSI);
|
||||||
printf_filtered ("\" is at ");
|
printf_filtered ("\" is at ");
|
||||||
print_address_numeric (SYMBOL_VALUE_ADDRESS (msymbol), gdb_stdout);
|
print_address_numeric (SYMBOL_VALUE_ADDRESS (msymbol), 1,
|
||||||
|
gdb_stdout);
|
||||||
printf_filtered (" in a file compiled without debugging.\n");
|
printf_filtered (" in a file compiled without debugging.\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1007,7 +1010,7 @@ address_info (exp, from_tty)
|
||||||
|
|
||||||
case LOC_LABEL:
|
case LOC_LABEL:
|
||||||
printf_filtered ("a label at address ");
|
printf_filtered ("a label at address ");
|
||||||
print_address_numeric (SYMBOL_VALUE_ADDRESS (sym), gdb_stdout);
|
print_address_numeric (SYMBOL_VALUE_ADDRESS (sym), 1, gdb_stdout);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LOC_REGISTER:
|
case LOC_REGISTER:
|
||||||
|
@ -1016,7 +1019,7 @@ address_info (exp, from_tty)
|
||||||
|
|
||||||
case LOC_STATIC:
|
case LOC_STATIC:
|
||||||
printf_filtered ("static storage at address ");
|
printf_filtered ("static storage at address ");
|
||||||
print_address_numeric (SYMBOL_VALUE_ADDRESS (sym), gdb_stdout);
|
print_address_numeric (SYMBOL_VALUE_ADDRESS (sym), 1, gdb_stdout);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LOC_REGPARM:
|
case LOC_REGPARM:
|
||||||
|
@ -1059,7 +1062,7 @@ address_info (exp, from_tty)
|
||||||
|
|
||||||
case LOC_BLOCK:
|
case LOC_BLOCK:
|
||||||
printf_filtered ("a function at address ");
|
printf_filtered ("a function at address ");
|
||||||
print_address_numeric (BLOCK_START (SYMBOL_BLOCK_VALUE (sym)),
|
print_address_numeric (BLOCK_START (SYMBOL_BLOCK_VALUE (sym)), 1,
|
||||||
gdb_stdout);
|
gdb_stdout);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -2075,9 +2078,9 @@ disassemble_command (arg, from_tty)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf_filtered ("from ");
|
printf_filtered ("from ");
|
||||||
print_address_numeric (low, gdb_stdout);
|
print_address_numeric (low, 1, gdb_stdout);
|
||||||
printf_filtered (" to ");
|
printf_filtered (" to ");
|
||||||
print_address_numeric (high, gdb_stdout);
|
print_address_numeric (high, 1, gdb_stdout);
|
||||||
printf_filtered (":\n");
|
printf_filtered (":\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -824,8 +824,8 @@ remote_write_bytes (memaddr, myaddr, len)
|
||||||
int i;
|
int i;
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
/* FIXME-32x64: Need a version of print_address_numeric which doesn't
|
/* FIXME-32x64: Need a version of print_address_numeric which puts the
|
||||||
set use_local (and also puts the result in a buffer like sprintf). */
|
result in a buffer like sprintf. */
|
||||||
sprintf (buf, "M%lx,%x:", (unsigned long) memaddr, len);
|
sprintf (buf, "M%lx,%x:", (unsigned long) memaddr, len);
|
||||||
|
|
||||||
/* We send target system values byte by byte, in increasing byte addresses,
|
/* We send target system values byte by byte, in increasing byte addresses,
|
||||||
|
@ -875,8 +875,8 @@ remote_read_bytes (memaddr, myaddr, len)
|
||||||
if (len > PBUFSIZ / 2 - 1)
|
if (len > PBUFSIZ / 2 - 1)
|
||||||
abort ();
|
abort ();
|
||||||
|
|
||||||
/* FIXME-32x64: Need a version of print_address_numeric which doesn't
|
/* FIXME-32x64: Need a version of print_address_numeric which puts the
|
||||||
set use_local (and also puts the result in a buffer like sprintf). */
|
result in a buffer like sprintf. */
|
||||||
sprintf (buf, "m%lx,%x", (unsigned long) memaddr, len);
|
sprintf (buf, "m%lx,%x", (unsigned long) memaddr, len);
|
||||||
putpkt (buf);
|
putpkt (buf);
|
||||||
getpkt (buf, 0);
|
getpkt (buf, 0);
|
||||||
|
|
64
gdb/stack.c
64
gdb/stack.c
|
@ -101,10 +101,13 @@ FRAME selected_frame;
|
||||||
|
|
||||||
int selected_frame_level;
|
int selected_frame_level;
|
||||||
|
|
||||||
/* Nonzero means print the full filename and linenumber
|
/* Zero means do things normally; we are interacting directly with the
|
||||||
when a frame is printed, and do so in a format programs can parse. */
|
user. One means print the full filename and linenumber when a
|
||||||
|
frame is printed, and do so in a format emacs18/emacs19.22 can
|
||||||
|
parse. Two means print similar annotations, but in many more
|
||||||
|
cases and in a slightly different syntax. */
|
||||||
|
|
||||||
int frame_file_full_name = 0;
|
int annotation_level = 0;
|
||||||
|
|
||||||
|
|
||||||
struct print_stack_frame_args {
|
struct print_stack_frame_args {
|
||||||
|
@ -255,9 +258,14 @@ print_frame_info (fi, level, source, args)
|
||||||
&& (SYMBOL_VALUE_ADDRESS (msymbol)
|
&& (SYMBOL_VALUE_ADDRESS (msymbol)
|
||||||
> BLOCK_START (SYMBOL_BLOCK_VALUE (func))))
|
> BLOCK_START (SYMBOL_BLOCK_VALUE (func))))
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
|
/* There is no particular reason to think the line number
|
||||||
|
information is wrong. Someone might have just put in
|
||||||
|
a label with asm() but left the line numbers alone. */
|
||||||
/* In this case we have no way of knowing the source file
|
/* In this case we have no way of knowing the source file
|
||||||
and line number, so don't print them. */
|
and line number, so don't print them. */
|
||||||
sal.symtab = 0;
|
sal.symtab = 0;
|
||||||
|
#endif
|
||||||
/* We also don't know anything about the function besides
|
/* We also don't know anything about the function besides
|
||||||
its address and name. */
|
its address and name. */
|
||||||
func = 0;
|
func = 0;
|
||||||
|
@ -287,7 +295,7 @@ print_frame_info (fi, level, source, args)
|
||||||
if (addressprint)
|
if (addressprint)
|
||||||
if (fi->pc != sal.pc || !sal.symtab)
|
if (fi->pc != sal.pc || !sal.symtab)
|
||||||
{
|
{
|
||||||
print_address_numeric (fi->pc, gdb_stdout);
|
print_address_numeric (fi->pc, 1, gdb_stdout);
|
||||||
printf_filtered (" in ");
|
printf_filtered (" in ");
|
||||||
}
|
}
|
||||||
fprintf_symbol_filtered (gdb_stdout, funname ? funname : "??", funlang,
|
fprintf_symbol_filtered (gdb_stdout, funname ? funname : "??", funlang,
|
||||||
|
@ -324,14 +332,14 @@ print_frame_info (fi, level, source, args)
|
||||||
{
|
{
|
||||||
int done = 0;
|
int done = 0;
|
||||||
int mid_statement = source < 0 && fi->pc != sal.pc;
|
int mid_statement = source < 0 && fi->pc != sal.pc;
|
||||||
if (frame_file_full_name)
|
if (annotation_level)
|
||||||
done = identify_source_line (sal.symtab, sal.line, mid_statement,
|
done = identify_source_line (sal.symtab, sal.line, mid_statement,
|
||||||
fi->pc);
|
fi->pc);
|
||||||
if (!done)
|
if (!done)
|
||||||
{
|
{
|
||||||
if (addressprint && mid_statement)
|
if (addressprint && mid_statement)
|
||||||
{
|
{
|
||||||
print_address_numeric (fi->pc, gdb_stdout);
|
print_address_numeric (fi->pc, 1, gdb_stdout);
|
||||||
printf_filtered ("\t");
|
printf_filtered ("\t");
|
||||||
}
|
}
|
||||||
print_source_lines (sal.symtab, sal.line, sal.line + 1, 0);
|
print_source_lines (sal.symtab, sal.line, sal.line + 1, 0);
|
||||||
|
@ -402,6 +410,22 @@ parse_frame_specification (frame_exp)
|
||||||
/* find_relative_frame was successful */
|
/* find_relative_frame was successful */
|
||||||
return fid;
|
return fid;
|
||||||
|
|
||||||
|
/* If SETUP_ARBITRARY_FRAME is defined, then frame specifications
|
||||||
|
take at least 2 addresses. It is important to detect this case
|
||||||
|
here so that "frame 100" does not give a confusing error message
|
||||||
|
like "frame specification requires two addresses". This of course
|
||||||
|
does not solve the "frame 100" problem for machines on which
|
||||||
|
a frame specification can be made with one address. To solve
|
||||||
|
that, we need a new syntax for a specifying a frame by address.
|
||||||
|
I think the cleanest syntax is $frame(0x45) ($frame(0x23,0x45) for
|
||||||
|
two args, etc.), but people might think that is too much typing,
|
||||||
|
so I guess *0x23,0x45 would be a possible alternative (commas
|
||||||
|
really should be used instead of spaces to delimit; using spaces
|
||||||
|
normally works in an expression). */
|
||||||
|
#ifdef SETUP_ARBITRARY_FRAME
|
||||||
|
error ("No frame %d", args[0]);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* If (s)he specifies the frame with an address, he deserves what
|
/* If (s)he specifies the frame with an address, he deserves what
|
||||||
(s)he gets. Still, give the highest one that matches. */
|
(s)he gets. Still, give the highest one that matches. */
|
||||||
|
|
||||||
|
@ -416,9 +440,7 @@ parse_frame_specification (frame_exp)
|
||||||
fid = tfid;
|
fid = tfid;
|
||||||
|
|
||||||
/* We couldn't identify the frame as an existing frame, but
|
/* We couldn't identify the frame as an existing frame, but
|
||||||
perhaps we can create one with a single argument.
|
perhaps we can create one with a single argument. */
|
||||||
Fall through to default case; it's up to SETUP_ARBITRARY_FRAME
|
|
||||||
to complain if it doesn't like a single arg. */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -498,18 +520,18 @@ frame_info (addr_exp, from_tty)
|
||||||
if (!addr_exp && selected_frame_level >= 0)
|
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);
|
print_address_numeric (FRAME_FP(frame), 1, gdb_stdout);
|
||||||
printf_filtered (":\n");
|
printf_filtered (":\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf_filtered ("Stack frame at ");
|
printf_filtered ("Stack frame at ");
|
||||||
print_address_numeric (FRAME_FP(frame), gdb_stdout);
|
print_address_numeric (FRAME_FP(frame), 1, gdb_stdout);
|
||||||
printf_filtered (":\n");
|
printf_filtered (":\n");
|
||||||
}
|
}
|
||||||
printf_filtered (" %s = ",
|
printf_filtered (" %s = ",
|
||||||
reg_names[PC_REGNUM]);
|
reg_names[PC_REGNUM]);
|
||||||
print_address_numeric (fi->pc, gdb_stdout);
|
print_address_numeric (fi->pc, 1, gdb_stdout);
|
||||||
|
|
||||||
wrap_here (" ");
|
wrap_here (" ");
|
||||||
if (funname)
|
if (funname)
|
||||||
|
@ -524,7 +546,7 @@ frame_info (addr_exp, from_tty)
|
||||||
puts_filtered ("; ");
|
puts_filtered ("; ");
|
||||||
wrap_here (" ");
|
wrap_here (" ");
|
||||||
printf_filtered ("saved %s ", reg_names[PC_REGNUM]);
|
printf_filtered ("saved %s ", reg_names[PC_REGNUM]);
|
||||||
print_address_numeric (FRAME_SAVED_PC (frame), gdb_stdout);
|
print_address_numeric (FRAME_SAVED_PC (frame), 1, gdb_stdout);
|
||||||
printf_filtered ("\n");
|
printf_filtered ("\n");
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -539,7 +561,7 @@ frame_info (addr_exp, from_tty)
|
||||||
if (calling_frame)
|
if (calling_frame)
|
||||||
{
|
{
|
||||||
printf_filtered (" called by frame at ");
|
printf_filtered (" called by frame at ");
|
||||||
print_address_numeric (FRAME_FP (calling_frame), gdb_stdout);
|
print_address_numeric (FRAME_FP (calling_frame), 1, gdb_stdout);
|
||||||
}
|
}
|
||||||
if (fi->next && calling_frame)
|
if (fi->next && calling_frame)
|
||||||
puts_filtered (",");
|
puts_filtered (",");
|
||||||
|
@ -547,7 +569,7 @@ frame_info (addr_exp, from_tty)
|
||||||
if (fi->next)
|
if (fi->next)
|
||||||
{
|
{
|
||||||
printf_filtered (" caller of frame at ");
|
printf_filtered (" caller of frame at ");
|
||||||
print_address_numeric (fi->next->frame, gdb_stdout);
|
print_address_numeric (fi->next->frame, 1, gdb_stdout);
|
||||||
}
|
}
|
||||||
if (fi->next || calling_frame)
|
if (fi->next || calling_frame)
|
||||||
puts_filtered ("\n");
|
puts_filtered ("\n");
|
||||||
|
@ -569,7 +591,7 @@ frame_info (addr_exp, from_tty)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf_filtered (" Arglist at ");
|
printf_filtered (" Arglist at ");
|
||||||
print_address_numeric (arg_list, gdb_stdout);
|
print_address_numeric (arg_list, 1, gdb_stdout);
|
||||||
printf_filtered (",");
|
printf_filtered (",");
|
||||||
|
|
||||||
FRAME_NUM_ARGS (numargs, fi);
|
FRAME_NUM_ARGS (numargs, fi);
|
||||||
|
@ -594,7 +616,7 @@ frame_info (addr_exp, from_tty)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf_filtered (" Locals at ");
|
printf_filtered (" Locals at ");
|
||||||
print_address_numeric (arg_list, gdb_stdout);
|
print_address_numeric (arg_list, 1, gdb_stdout);
|
||||||
printf_filtered (",");
|
printf_filtered (",");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -604,7 +626,7 @@ frame_info (addr_exp, from_tty)
|
||||||
/* The sp is special; what's returned isn't the save address, but
|
/* The sp is special; what's returned isn't the save address, but
|
||||||
actually the value of the previous frame's sp. */
|
actually the value of the previous frame's sp. */
|
||||||
printf_filtered (" Previous frame's sp is ");
|
printf_filtered (" Previous frame's sp is ");
|
||||||
print_address_numeric (fsr.regs[SP_REGNUM], gdb_stdout);
|
print_address_numeric (fsr.regs[SP_REGNUM], 1, gdb_stdout);
|
||||||
printf_filtered ("\n");
|
printf_filtered ("\n");
|
||||||
count = 0;
|
count = 0;
|
||||||
for (i = 0; i < NUM_REGS; i++)
|
for (i = 0; i < NUM_REGS; i++)
|
||||||
|
@ -616,7 +638,7 @@ frame_info (addr_exp, from_tty)
|
||||||
puts_filtered (",");
|
puts_filtered (",");
|
||||||
wrap_here (" ");
|
wrap_here (" ");
|
||||||
printf_filtered (" %s at ", reg_names[i]);
|
printf_filtered (" %s at ", reg_names[i]);
|
||||||
print_address_numeric (fsr.regs[i], gdb_stdout);
|
print_address_numeric (fsr.regs[i], 1, gdb_stdout);
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
if (count)
|
if (count)
|
||||||
|
@ -826,7 +848,7 @@ print_block_frame_labels (b, have_default, stream)
|
||||||
if (addressprint)
|
if (addressprint)
|
||||||
{
|
{
|
||||||
fprintf_filtered (stream, " ");
|
fprintf_filtered (stream, " ");
|
||||||
print_address_numeric (SYMBOL_VALUE_ADDRESS (sym), stream);
|
print_address_numeric (SYMBOL_VALUE_ADDRESS (sym), 1, stream);
|
||||||
}
|
}
|
||||||
fprintf_filtered (stream, " in file %s, line %d\n",
|
fprintf_filtered (stream, " in file %s, line %d\n",
|
||||||
sal.symtab->filename, sal.line);
|
sal.symtab->filename, sal.line);
|
||||||
|
@ -1272,7 +1294,7 @@ return_command (retval_exp, from_tty)
|
||||||
FRAME_ADDR selected_frame_addr;
|
FRAME_ADDR selected_frame_addr;
|
||||||
CORE_ADDR selected_frame_pc;
|
CORE_ADDR selected_frame_pc;
|
||||||
FRAME frame;
|
FRAME frame;
|
||||||
value return_value = NULL;
|
value_ptr return_value = NULL;
|
||||||
|
|
||||||
if (selected_frame == NULL)
|
if (selected_frame == NULL)
|
||||||
error ("No selected frame.");
|
error ("No selected frame.");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue