This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] stack.c: Always set current_source_{symtab,line}
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: Keith Seitz <keiths at redhat dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Thu, 29 Aug 2002 11:01:47 -0400
- Subject: Re: [RFA] stack.c: Always set current_source_{symtab,line}
- References: <Pine.LNX.4.44.0208141621210.1407-100000@valrhona.uglyboxes.com>
Keith Seitz writes:
> Hi,
>
> Another MI fallout. This has changed a few times in the past few months,
> but I believe that this is how it should be for anything that uses the
> CLI/command interpreter.
>
> Without this, an -interpreter-exec call in MI will get "lost". (Use MI to
> stop at breakpoint, step a few times, use console interp to "break" --
> breakpoint would be set someplace other than current location.)
>
Seems an ok patch, but do you have an example command sequence
before/after that shows where things go wrong? I am having a bit of a
hard time visualizing the interaction.
Elena
> I've run this through the testsuite, and it introduces no new failures.
> (And of course, it still works with Insight.)
>
> Keith
>
> ChangeLog
> 2002-08-14 Keith Seitz <keiths@redhat.com>
>
> * stack.c (print_frame_info_base): Always set current_source_symtab
> and current_source_line.
>
> Patch
> Index: stack.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/stack.c,v
> retrieving revision 1.40
> diff -p -r1.40 stack.c
> *** stack.c 11 Jul 2002 19:29:08 -0000 1.40
> --- stack.c 14 Aug 2002 23:17:59 -0000
> *************** print_frame_info_base (struct frame_info
> *** 398,403 ****
> --- 398,408 ----
> print_frame (fi, level, source, args, sal);
>
> source_print = (source == SRC_LINE || source == SRC_AND_LOC);
> + if (sal.symtab != NULL)
> + {
> + current_source_symtab = sal.symtab;
> + current_source_line = sal.line;
> + }
>
> if (source_print && sal.symtab)
> {
> *************** print_frame_info_base (struct frame_info
> *** 410,419 ****
> if (!done)
> {
> if (print_frame_info_listing_hook)
> ! {
> ! print_frame_info_listing_hook (sal.symtab, sal.line, sal.line + 1, 0);
> ! current_source_symtab = sal.symtab;
> ! }
> else
> {
> /* We used to do this earlier, but that is clearly
> --- 415,421 ----
> if (!done)
> {
> if (print_frame_info_listing_hook)
> ! print_frame_info_listing_hook (sal.symtab, sal.line, sal.line + 1, 0);
> else
> {
> /* We used to do this earlier, but that is clearly
>
>