2004-04-28 Andrew Cagney <cagney@redhat.com>

* stack.c (print_stack_frame_stub): Delete declaration.
	(struct print_stack_frame_args, print_stack_frame)
	(print_frame_info, print_frame): Replace "source" with print what.
	Replace "print" with "print_level".  Replace "args" with
	"print_args".
	* frame.h (show_and_print_stack_frame, print_stack_frame)
	(print_frame_info): Update declarations.
	* stack.c (select_and_print_frame, frame_command)
	(current_frame_command, up_command, down_command): Update calls -
	use get_selected_frame, pass "enum print_what" for source, do not
	call frame_relative_level.
	* mi/mi-cmd-stack.c (mi_cmd_stack_list_frames): Ditto.
	* remote-rdp.c (remote_rdp_open): Ditto.
	* remote-mips.c (common_open): Ditto.
	* remote-e7000.c (e7000_start_remote): Ditto.
	* ocd.c (ocd_start_remote): Ditto.
	* mi/mi-main.c (mi_cmd_exec_return): Ditto.
	* infrun.c (normal_stop): Ditto.
	* inflow.c (kill_command): Ditto.
	* infcmd.c (finish_command): Ditto.
	* corelow.c (core_open): Ditto.
	* tracepoint.c (finish_tfind_command): Ditto.
	* thread.c (info_threads_command, info_threads_command)
	(restore_current_thread, do_captured_thread_select): Ditto.
	* ada-tasks.c (task_command): Ditto.
This commit is contained in:
Andrew Cagney 2004-04-28 16:36:25 +00:00
parent 5d38b224de
commit 0faf007628
16 changed files with 102 additions and 91 deletions

View File

@ -1,3 +1,31 @@
2004-04-28 Andrew Cagney <cagney@redhat.com>
* stack.c (print_stack_frame_stub): Delete declaration.
(struct print_stack_frame_args, print_stack_frame)
(print_frame_info, print_frame): Replace "source" with print what.
Replace "print" with "print_level". Replace "args" with
"print_args".
* frame.h (show_and_print_stack_frame, print_stack_frame)
(print_frame_info): Update declarations.
* stack.c (select_and_print_frame, frame_command)
(current_frame_command, up_command, down_command): Update calls -
use get_selected_frame, pass "enum print_what" for source, do not
call frame_relative_level.
* mi/mi-cmd-stack.c (mi_cmd_stack_list_frames): Ditto.
* remote-rdp.c (remote_rdp_open): Ditto.
* remote-mips.c (common_open): Ditto.
* remote-e7000.c (e7000_start_remote): Ditto.
* ocd.c (ocd_start_remote): Ditto.
* mi/mi-main.c (mi_cmd_exec_return): Ditto.
* infrun.c (normal_stop): Ditto.
* inflow.c (kill_command): Ditto.
* infcmd.c (finish_command): Ditto.
* corelow.c (core_open): Ditto.
* tracepoint.c (finish_tfind_command): Ditto.
* thread.c (info_threads_command, info_threads_command)
(restore_current_thread, do_captured_thread_select): Ditto.
* ada-tasks.c (task_command): Ditto.
2004-04-26 Orjan Friberg <orjanf@axis.com>
* frame.c: Include "observer.h".

View File

@ -794,10 +794,8 @@ task_command (char *tidstr, int from_tty)
{
/* FIXME: find_printable_frame should be defined in frame.h, and
implemented in ada-lang.c */
/* find_printable_frame (deprecated_selected_frame, frame_relative_level (deprecated_selected_frame)); */
printf_filtered ("[Switching to task %d]\n", num);
print_stack_frame (deprecated_selected_frame,
frame_relative_level (deprecated_selected_frame), 1);
print_stack_frame (get_selected_frame (), 1, SRC_AND_LOC);
}
else
printf_filtered ("Unable to switch to task %d\n", num);

View File

@ -388,8 +388,7 @@ core_open (char *filename, int from_tty)
/* Now, set up the frame cache, and print the top of stack. */
flush_cached_frames ();
select_frame (get_current_frame ());
print_stack_frame (deprecated_selected_frame,
frame_relative_level (deprecated_selected_frame), 1);
print_stack_frame (get_selected_frame (), 1, SRC_AND_LOC);
}
else
{

View File

@ -554,14 +554,16 @@ extern int legacy_frameless_look_for_prologue (struct frame_info *);
extern struct frame_info *find_relative_frame (struct frame_info *, int *);
extern void show_and_print_stack_frame (struct frame_info *fi, int level,
int source);
extern void show_and_print_stack_frame (struct frame_info *fi, int print_level,
enum print_what print_what);
extern void print_stack_frame (struct frame_info *, int, int);
extern void print_stack_frame (struct frame_info *, int print_level,
enum print_what print_what);
extern void show_stack_frame (struct frame_info *);
extern void print_frame_info (struct frame_info *, int, int, int);
extern void print_frame_info (struct frame_info *, int print_level,
enum print_what print_what, int args);
extern struct frame_info *block_innermost_frame (struct block *);

View File

@ -1234,8 +1234,7 @@ finish_command (char *arg, int from_tty)
if (from_tty)
{
printf_filtered ("Run till exit from ");
print_stack_frame (deprecated_selected_frame,
frame_relative_level (deprecated_selected_frame), 0);
print_stack_frame (get_selected_frame (), 1, LOCATION);
}
/* If running asynchronously and the target support asynchronous

View File

@ -595,8 +595,7 @@ kill_command (char *arg, int from_tty)
if (deprecated_selected_frame == NULL)
fputs_filtered ("No selected stack frame.\n", gdb_stdout);
else
print_stack_frame (deprecated_selected_frame,
frame_relative_level (deprecated_selected_frame), 1);
print_stack_frame (get_selected_frame (), 1, SRC_AND_LOC);
}
}

View File

@ -3248,7 +3248,7 @@ normal_stop (void)
LOCATION: Print only location
SRC_AND_LOC: Print location and source line */
if (do_frame_printing)
print_stack_frame (deprecated_selected_frame, -1, source_flag);
print_stack_frame (get_selected_frame (), 0, source_flag);
/* Display the auto-display expressions. */
do_displays ();

View File

@ -85,14 +85,9 @@ mi_cmd_stack_list_frames (char *command, char **argv, int argc)
i++, fi = get_prev_frame (fi))
{
QUIT;
/* level == i: always print the level 'i'
source == LOC_AND_ADDRESS: print the location and the address
always, even for level 0.
/* Print the location and the address always, even for level 0.
args == 0: don't print the arguments. */
print_frame_info (fi /* frame info */ ,
i /* level */ ,
LOC_AND_ADDRESS /* source */ ,
0 /* args */ );
print_frame_info (fi, 1, LOC_AND_ADDRESS, 0 /* args */ );
}
do_cleanups (cleanup_stack);

View File

@ -191,9 +191,7 @@ mi_cmd_exec_return (char *args, int from_tty)
/* Because we have called return_command with from_tty = 0, we need
to print the frame here. */
print_stack_frame (deprecated_selected_frame,
frame_relative_level (deprecated_selected_frame),
LOC_AND_ADDRESS);
print_stack_frame (get_selected_frame (), 1, LOC_AND_ADDRESS);
return MI_CMD_DONE;
}

View File

@ -225,7 +225,7 @@ ocd_start_remote (void *dummy)
flush_cached_frames ();
registers_changed ();
stop_pc = read_pc ();
print_stack_frame (get_selected_frame (), -1, 1);
print_stack_frame (get_selected_frame (), 0, SRC_AND_LOC);
buf[0] = OCD_LOG_FILE;
buf[1] = 3; /* close existing WIGGLERS.LOG */

View File

@ -629,7 +629,7 @@ e7000_start_remote (void *dummy)
flush_cached_frames ();
registers_changed ();
stop_pc = read_pc ();
print_stack_frame (get_selected_frame (), -1, 1);
print_stack_frame (get_selected_frame (), 0, SRC_AND_LOC);
return 1;
}

View File

@ -1588,7 +1588,7 @@ device is attached to the target board (e.g., /dev/ttya).\n"
flush_cached_frames ();
registers_changed ();
stop_pc = read_pc ();
print_stack_frame (get_selected_frame (), -1, 1);
print_stack_frame (get_selected_frame (), 0, SRC_AND_LOC);
xfree (serial_port_name);
}

View File

@ -1181,7 +1181,7 @@ remote_rdp_open (char *args, int from_tty)
flush_cached_frames ();
registers_changed ();
stop_pc = read_pc ();
print_stack_frame (get_selected_frame (), -1, 1);
print_stack_frame (get_selected_frame (), 0, SRC_AND_LOC);
}

View File

@ -95,9 +95,9 @@ static int print_block_frame_locals (struct block *,
struct ui_file *);
static void print_frame (struct frame_info *fi,
int level,
int source,
int args,
int print_level,
enum print_what print_what,
int print_args,
struct symtab_and_line sal);
static void backtrace_command (char *, int);
@ -120,42 +120,38 @@ int annotation_level = 0;
struct print_stack_frame_args
{
struct frame_info *fi;
int level;
int source;
int args;
int print_level;
enum print_what print_what;
int print_args;
};
/* Show or print the frame arguments.
Pass the args the way catch_errors wants them. */
static int print_stack_frame_stub (void *args);
static int
print_stack_frame_stub (void *args)
{
struct print_stack_frame_args *p = (struct print_stack_frame_args *) args;
print_frame_info (p->fi, p->level, p->source, p->args);
print_frame_info (p->fi, p->print_level, p->print_what, p->print_args);
return 0;
}
/* Show or print a stack frame briefly. FRAME_INFI should be the frame info
and LEVEL should be its level in the stack (or -1 for level not defined).
This prints the level, the function executing, the arguments,
and the file name and line number.
If the pc is not at the beginning of the source line,
the actual pc is printed at the beginning.
If SOURCE is 1, print the source line as well.
If SOURCE is -1, print ONLY the source line. */
/* Show or print a stack frame briefly. FRAME_INFI should be the
frame info. This prints the level, the function executing, the
arguments, and the file name and line number. If the pc is not at
the beginning of the source line, the actual pc is printed at the
beginning. */
void
print_stack_frame (struct frame_info *fi, int level, int source)
print_stack_frame (struct frame_info *fi, int print_level,
enum print_what print_what)
{
struct print_stack_frame_args args;
args.fi = fi;
args.level = level;
args.source = source;
args.args = 1;
args.print_level = print_level;
args.print_what = print_what;
args.print_args = 1;
catch_errors (print_stack_frame_stub, (char *) &args, "", RETURN_MASK_ALL);
}
@ -418,7 +414,8 @@ print_args_stub (void *args)
LOC_AND_SRC: Print location and source line. */
void
print_frame_info (struct frame_info *fi, int level, int source, int args)
print_frame_info (struct frame_info *fi, int print_level,
enum print_what print_what, int print_args)
{
struct symtab_and_line sal;
int source_print;
@ -430,14 +427,16 @@ print_frame_info (struct frame_info *fi, int level, int source, int args)
struct cleanup *uiout_cleanup
= make_cleanup_ui_out_tuple_begin_end (uiout, "frame");
annotate_frame_begin (level == -1 ? 0 : level, get_frame_pc (fi));
annotate_frame_begin (print_level ? frame_relative_level (fi) : 0,
get_frame_pc (fi));
/* Do this regardless of SOURCE because we don't have any source
to list for this frame. */
if (level >= 0)
if (print_level)
{
ui_out_text (uiout, "#");
ui_out_field_fmt_int (uiout, 2, ui_left, "level", level);
ui_out_field_fmt_int (uiout, 2, ui_left, "level",
frame_relative_level (fi));
}
if (ui_out_is_mi_like_p (uiout))
{
@ -471,14 +470,14 @@ print_frame_info (struct frame_info *fi, int level, int source, int args)
line containing fi->pc. */
find_frame_sal (fi, &sal);
location_print = (source == LOCATION
|| source == LOC_AND_ADDRESS
|| source == SRC_AND_LOC);
location_print = (print_what == LOCATION
|| print_what == LOC_AND_ADDRESS
|| print_what == SRC_AND_LOC);
if (location_print || !sal.symtab)
print_frame (fi, level, source, args, sal);
print_frame (fi, print_level, print_what, print_args, sal);
source_print = (source == SRC_LINE || source == SRC_AND_LOC);
source_print = (print_what == SRC_LINE || print_what == SRC_AND_LOC);
if (sal.symtab)
set_current_source_symtab_and_line (&sal);
@ -487,7 +486,8 @@ print_frame_info (struct frame_info *fi, int level, int source, int args)
{
struct symtab_and_line cursal;
int done = 0;
int mid_statement = (source == SRC_LINE) && (get_frame_pc (fi) != sal.pc);
int mid_statement = ((print_what == SRC_LINE)
&& (get_frame_pc (fi) != sal.pc));
if (annotation_level)
done = identify_source_line (sal.symtab, sal.line, mid_statement,
@ -522,7 +522,7 @@ print_frame_info (struct frame_info *fi, int level, int source, int args)
set_current_source_symtab_and_line (&cursal);
}
if (source != 0)
if (print_what != LOCATION)
set_default_breakpoint (1, get_frame_pc (fi), sal.symtab, sal.line);
annotate_frame_end ();
@ -532,9 +532,9 @@ print_frame_info (struct frame_info *fi, int level, int source, int args)
static void
print_frame (struct frame_info *fi,
int level,
int source,
int args,
int print_level,
enum print_what print_what,
int print_args,
struct symtab_and_line sal)
{
struct symbol *func;
@ -622,19 +622,21 @@ print_frame (struct frame_info *fi,
}
}
annotate_frame_begin (level == -1 ? 0 : level, get_frame_pc (fi));
annotate_frame_begin (print_level ? frame_relative_level (fi) : 0,
get_frame_pc (fi));
list_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "frame");
if (level >= 0)
if (print_level)
{
ui_out_text (uiout, "#");
ui_out_field_fmt_int (uiout, 2, ui_left, "level", level);
ui_out_field_fmt_int (uiout, 2, ui_left, "level",
frame_relative_level (fi));
}
if (addressprint)
if (get_frame_pc (fi) != sal.pc
|| !sal.symtab
|| source == LOC_AND_ADDRESS)
|| print_what == LOC_AND_ADDRESS)
{
annotate_frame_address ();
ui_out_field_core_addr (uiout, "addr", get_frame_pc (fi));
@ -649,7 +651,7 @@ print_frame (struct frame_info *fi,
annotate_frame_args ();
ui_out_text (uiout, " (");
if (args)
if (print_args)
{
struct print_args_args args;
struct cleanup *args_list_chain;
@ -1220,7 +1222,7 @@ backtrace_command_1 (char *count_exp, int show_locals, int from_tty)
means further attempts to backtrace would fail (on the other
hand, perhaps the code does or could be fixed to make sure
the frame->prev field gets set to NULL in that case). */
print_frame_info (fi, trailing_level + i, 0, 1);
print_frame_info (fi, 1, LOCATION, 1);
if (show_locals)
print_frame_local_vars (fi, 1, gdb_stdout);
}
@ -1606,9 +1608,7 @@ select_and_print_frame (struct frame_info *fi)
{
select_frame (fi);
if (fi)
{
print_stack_frame (fi, frame_relative_level (fi), 1);
}
print_stack_frame (fi, 1, SRC_AND_LOC);
}
/* Return the symbol-block in which the selected frame is executing.
@ -1715,8 +1715,7 @@ void
frame_command (char *level_exp, int from_tty)
{
select_frame_command (level_exp, from_tty);
print_stack_frame (deprecated_selected_frame,
frame_relative_level (deprecated_selected_frame), 1);
print_stack_frame (get_selected_frame (), 1, SRC_AND_LOC);
}
/* The XDB Compatibility command to print the current frame. */
@ -1726,8 +1725,7 @@ current_frame_command (char *level_exp, int from_tty)
{
if (target_has_stack == 0 || deprecated_selected_frame == 0)
error ("No stack.");
print_stack_frame (deprecated_selected_frame,
frame_relative_level (deprecated_selected_frame), 1);
print_stack_frame (get_selected_frame (), 1, SRC_AND_LOC);
}
/* Select the frame up one or COUNT stack levels
@ -1762,8 +1760,7 @@ static void
up_command (char *count_exp, int from_tty)
{
up_silently_base (count_exp);
print_stack_frame (deprecated_selected_frame,
frame_relative_level (deprecated_selected_frame), 1);
print_stack_frame (get_selected_frame (), 1, SRC_AND_LOC);
}
/* Select the frame down one or COUNT stack levels
@ -1807,8 +1804,7 @@ static void
down_command (char *count_exp, int from_tty)
{
down_silently_base (count_exp);
print_stack_frame (deprecated_selected_frame,
frame_relative_level (deprecated_selected_frame), 1);
print_stack_frame (get_selected_frame (), 1, SRC_AND_LOC);
}
void

View File

@ -448,7 +448,7 @@ info_threads_command (char *arg, int from_tty)
puts_filtered (" ");
switch_to_thread (tp->ptid);
print_stack_frame (get_selected_frame (), -1, 0);
print_stack_frame (get_selected_frame (), 0, LOCATION);
}
switch_to_thread (current_ptid);
@ -465,7 +465,7 @@ info_threads_command (char *arg, int from_tty)
{
/* Ooops, can't restore, tell user where we are. */
warning ("Couldn't restore frame in current thread, at frame 0");
print_stack_frame (get_selected_frame (), -1, 0);
print_stack_frame (get_selected_frame (), 0, LOCATION);
}
else
{
@ -497,7 +497,7 @@ restore_current_thread (ptid_t ptid)
if (!ptid_equal (ptid, inferior_ptid))
{
switch_to_thread (ptid);
print_stack_frame (get_current_frame (), 0, -1);
print_stack_frame (get_current_frame (), 1, SRC_LINE);
}
}
@ -704,8 +704,7 @@ do_captured_thread_select (struct ui_out *uiout, void *tidstr)
#endif
ui_out_text (uiout, ")]");
print_stack_frame (deprecated_selected_frame,
frame_relative_level (deprecated_selected_frame), 1);
print_stack_frame (get_selected_frame (), 1, SRC_AND_LOC);
return GDB_RC_OK;
}

View File

@ -1935,7 +1935,7 @@ finish_tfind_command (char *msg,
if (from_tty)
{
int source_only;
enum print_what print_what;
/* NOTE: in immitation of the step command, try to determine
whether we have made a transition from one function to another.
@ -1951,13 +1951,11 @@ finish_tfind_command (char *msg,
(old_frame_addr == 0 ||
get_frame_base (get_current_frame ()) == 0 ||
old_frame_addr == get_frame_base (get_current_frame ())))
source_only = -1;
print_what = SRC_LINE;
else
source_only = 1;
print_what = SRC_AND_LOC;
print_stack_frame (deprecated_selected_frame,
frame_relative_level (deprecated_selected_frame),
source_only);
print_stack_frame (get_selected_frame (), 1, print_what);
do_displays ();
}
}