Browse Source

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.
jimb-rda-nptl-branch
Andrew Cagney 23 years ago
parent
commit
0faf007628
  1. 28
      gdb/ChangeLog
  2. 4
      gdb/ada-tasks.c
  3. 3
      gdb/corelow.c
  4. 10
      gdb/frame.h
  5. 3
      gdb/infcmd.c
  6. 3
      gdb/inflow.c
  7. 2
      gdb/infrun.c
  8. 9
      gdb/mi/mi-cmd-stack.c
  9. 4
      gdb/mi/mi-main.c
  10. 2
      gdb/ocd.c
  11. 2
      gdb/remote-e7000.c
  12. 2
      gdb/remote-mips.c
  13. 2
      gdb/remote-rdp.c
  14. 100
      gdb/stack.c
  15. 9
      gdb/thread.c
  16. 10
      gdb/tracepoint.c

28
gdb/ChangeLog

@ -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".

4
gdb/ada-tasks.c

@ -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);

3
gdb/corelow.c

@ -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
{

10
gdb/frame.h

@ -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 *);

3
gdb/infcmd.c

@ -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

3
gdb/inflow.c

@ -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);
}
}

2
gdb/infrun.c

@ -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 ();

9
gdb/mi/mi-cmd-stack.c

@ -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);

4
gdb/mi/mi-main.c

@ -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;
}

2
gdb/ocd.c

@ -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 */

2
gdb/remote-e7000.c

@ -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;
}

2
gdb/remote-mips.c

@ -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);
}

2
gdb/remote-rdp.c

@ -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);
}

100
gdb/stack.c

@ -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

9
gdb/thread.c

@ -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;
}

10
gdb/tracepoint.c

@ -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 ();
}
}

Loading…
Cancel
Save