Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* RFA: Tolerate filenames present in symtabs but absent from macro info
@ 2002-11-06  9:41 Jim Blandy
  2002-11-06 10:24 ` Andrew Cagney
  2002-11-07 12:44 ` Jim Blandy
  0 siblings, 2 replies; 8+ messages in thread
From: Jim Blandy @ 2002-11-06  9:41 UTC (permalink / raw)
  To: gdb-patches


2002-11-01  Jim Blandy  <jimb@redhat.com>

	* macroscope.c: #include "complaints.h".
	(sal_macro_scope): Cope with filenames that appear in the symtabs,
	but not in the macro table.
	* Makefile.in (macroscope.o): Record dependency.

Index: gdb/macroscope.c
===================================================================
RCS file: /cvs/src/src/gdb/macroscope.c,v
retrieving revision 1.4
diff -c -r1.4 macroscope.c
*** gdb/macroscope.c	20 Sep 2002 14:58:58 -0000	1.4
--- gdb/macroscope.c	2 Nov 2002 17:42:00 -0000
***************
*** 27,38 ****
  #include "target.h"
  #include "frame.h"
  #include "inferior.h"
  
  
  struct macro_scope *
  sal_macro_scope (struct symtab_and_line sal)
  {
!   struct macro_source_file *main;
    struct macro_scope *ms;
  
    if (! sal.symtab
--- 27,39 ----
  #include "target.h"
  #include "frame.h"
  #include "inferior.h"
+ #include "complaints.h"
  
  
  struct macro_scope *
  sal_macro_scope (struct symtab_and_line sal)
  {
!   struct macro_source_file *main, *inclusion;
    struct macro_scope *ms;
  
    if (! sal.symtab
***************
*** 42,58 ****
    ms = (struct macro_scope *) xmalloc (sizeof (*ms));
  
    main = macro_main (sal.symtab->macro_table);
!   ms->file = macro_lookup_inclusion (main, sal.symtab->filename);
  
!   if (! ms->file)
!     internal_error
!       (__FILE__, __LINE__,
!        "\n"
!        "the symtab `%s' refers to a preprocessor macro table which doesn't\n"
!        "have any record of processing a file by that name.\n",
!        sal.symtab->filename);
! 
!   ms->line = sal.line;
  
    return ms;
  }
--- 43,79 ----
    ms = (struct macro_scope *) xmalloc (sizeof (*ms));
  
    main = macro_main (sal.symtab->macro_table);
!   inclusion = macro_lookup_inclusion (main, sal.symtab->filename);
  
!   if (inclusion)
!     {
!       ms->file = inclusion;
!       ms->line = sal.line;
!     }
!   else
!     {
!       /* There are, unfortunately, cases where a compilation unit can
!          have a symtab for a source file that doesn't appear in the
!          macro table.  For example, at the moment, Dwarf doesn't have
!          any way in the .debug_macinfo section to describe the effect
!          of #line directives, so if you debug a YACC parser you'll get
!          a macro table which only mentions the .c files generated by
!          YACC, but symtabs that mention the .y files consumed by YACC.
! 
!          In the long run, we should extend the Dwarf macro info
!          representation to handle #line directives, and get GCC to
!          emit it.
! 
!          For the time being, though, we'll just treat these as
!          occurring at the end of the main source file.  */
!       ms->file = main;
!       ms->line = -1;
! 
!       complaint (&symfile_complaints,
!                  "symtab found for `%s', but that file\n"
!                  "is not covered in the compilation unit's macro information",
!                  sal.symtab->filename);
!     }
  
    return ms;
  }
Index: gdb/Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.273
diff -c -r1.273 Makefile.in
*** gdb/Makefile.in	25 Oct 2002 21:23:57 -0000	1.273
--- gdb/Makefile.in	2 Nov 2002 17:41:59 -0000
***************
*** 1869,1875 ****
  macroexp.o: macroexp.c $(defs_h) $(gdb_obstack_h) $(bcache_h) $(macrotab_h) \
  	$(macroexp_h) $(gdb_assert_h)
  macroscope.o: macroscope.c $(defs_h) $(macroscope_h) $(symtab_h) $(target_h) \
! 	$(frame_h) $(inferior_h) $(source_h)
  macrotab.o: macrotab.c $(defs_h) $(gdb_obstack_h) $(splay_tree_h) \
  	$(symtab_h) $(symfile_h) $(objfiles_h) $(macrotab_h) $(gdb_assert_h) \
  	$(bcache_h) $(complaints_h)
--- 1869,1875 ----
  macroexp.o: macroexp.c $(defs_h) $(gdb_obstack_h) $(bcache_h) $(macrotab_h) \
  	$(macroexp_h) $(gdb_assert_h)
  macroscope.o: macroscope.c $(defs_h) $(macroscope_h) $(symtab_h) $(target_h) \
! 	$(frame_h) $(inferior_h) $(source_h) $(complaints_h)
  macrotab.o: macrotab.c $(defs_h) $(gdb_obstack_h) $(splay_tree_h) \
  	$(symtab_h) $(symfile_h) $(objfiles_h) $(macrotab_h) $(gdb_assert_h) \
  	$(bcache_h) $(complaints_h)


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RFA: Tolerate filenames present in symtabs but absent from macro info
  2002-11-06  9:41 RFA: Tolerate filenames present in symtabs but absent from macro info Jim Blandy
@ 2002-11-06 10:24 ` Andrew Cagney
  2002-11-06 10:34   ` Andrew Cagney
  2002-11-06 12:42   ` Jim Blandy
  2002-11-07 12:44 ` Jim Blandy
  1 sibling, 2 replies; 8+ messages in thread
From: Andrew Cagney @ 2002-11-06 10:24 UTC (permalink / raw)
  To: Jim Blandy; +Cc: gdb-patches

> !       (__FILE__, __LINE__,
> !        "\n"
> !        "the symtab `%s' refers to a preprocessor macro table which doesn't\n"


What's the "\n" for?  The sentence should also start with a capital (and 
probably not end in a full-stop).

Andrew



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RFA: Tolerate filenames present in symtabs but absent from macro info
  2002-11-06 10:24 ` Andrew Cagney
@ 2002-11-06 10:34   ` Andrew Cagney
  2002-11-06 12:42   ` Jim Blandy
  1 sibling, 0 replies; 8+ messages in thread
From: Andrew Cagney @ 2002-11-06 10:34 UTC (permalink / raw)
  To: Andrew Cagney; +Cc: Jim Blandy, gdb-patches

> !       (__FILE__, __LINE__,
> !        "\n"
> !        "the symtab `%s' refers to a preprocessor macro table which doesn't\n"
> 
> 
> What's the "\n" for?  The sentence should also start with a capital (and probably not end in a full-stop).

Hmm, oops, PS.

> !   ms->file = macro_lookup_inclusion (main, sal.symtab->filename);
>   
> !   if (! ms->file)
> !     internal_error
> !       (__FILE__, __LINE__,
> !        "\n"
> !        "the symtab `%s' refers to a preprocessor macro table which doesn't\n"
> !        "have any record of processing a file by that name.\n",
> !        sal.symtab->filename);
> ! 
> !   ms->line = sal.line;

Is this an error?  The problem is caused by invalid input and not GDB's 
internal state being somehow corrupt.

(Daniel's suggestion about gdb-test is a good idea.)

Andrew



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RFA: Tolerate filenames present in symtabs but absent from macro info
  2002-11-06 10:24 ` Andrew Cagney
  2002-11-06 10:34   ` Andrew Cagney
@ 2002-11-06 12:42   ` Jim Blandy
  2002-11-06 12:51     ` Andrew Cagney
  1 sibling, 1 reply; 8+ messages in thread
From: Jim Blandy @ 2002-11-06 12:42 UTC (permalink / raw)
  To: Andrew Cagney; +Cc: gdb-patches


Andrew Cagney <ac131313@redhat.com> writes:

> > !       (__FILE__, __LINE__,
> > !        "\n"
> > !        "the symtab `%s' refers to a preprocessor macro table which doesn't\n"
> 
> 
> What's the "\n" for?  The sentence should also start with a capital
> (and probably not end in a full-stop).

Do you mean to be reading the new side of the patch?  That's the old
text.

The new output looks like this:

    (gdb) print i
    During symbol reading, symtab found for `step-line.inp', but that file
    is not covered in the compilation unit's macro information.
    $1 = 4
    (gdb) 


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RFA: Tolerate filenames present in symtabs but absent from macro info
  2002-11-06 12:42   ` Jim Blandy
@ 2002-11-06 12:51     ` Andrew Cagney
  0 siblings, 0 replies; 8+ messages in thread
From: Andrew Cagney @ 2002-11-06 12:51 UTC (permalink / raw)
  To: Jim Blandy; +Cc: gdb-patches

> Andrew Cagney <ac131313@redhat.com> writes:
> 
> 
>> > !       (__FILE__, __LINE__,
>> > !        "\n"
>> > !        "the symtab `%s' refers to a preprocessor macro table which doesn't\n"
> 
>> 
>> 
>> What's the "\n" for?  The sentence should also start with a capital
>> (and probably not end in a full-stop).
> 
> 
> Do you mean to be reading the new side of the patch?  That's the old
> text.

Sorry, my bad :-(

> The new output looks like this:
> 
>     (gdb) print i
>     During symbol reading, symtab found for `step-line.inp', but that file
>     is not covered in the compilation unit's macro information.
>     $1 = 4
>     (gdb) 

Andrew



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RFA: Tolerate filenames present in symtabs but absent from macro info
  2002-11-06  9:41 RFA: Tolerate filenames present in symtabs but absent from macro info Jim Blandy
  2002-11-06 10:24 ` Andrew Cagney
@ 2002-11-07 12:44 ` Jim Blandy
  2002-11-13 10:49   ` David Carlton
  1 sibling, 1 reply; 8+ messages in thread
From: Jim Blandy @ 2002-11-07 12:44 UTC (permalink / raw)
  To: gdb-patches


I've committed this.

Jim Blandy <jimb@redhat.com> writes:

> 2002-11-01  Jim Blandy  <jimb@redhat.com>
> 
> 	* macroscope.c: #include "complaints.h".
> 	(sal_macro_scope): Cope with filenames that appear in the symtabs,
> 	but not in the macro table.
> 	* Makefile.in (macroscope.o): Record dependency.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RFA: Tolerate filenames present in symtabs but absent from macro info
  2002-11-07 12:44 ` Jim Blandy
@ 2002-11-13 10:49   ` David Carlton
  2002-11-13 11:26     ` Jim Blandy
  0 siblings, 1 reply; 8+ messages in thread
From: David Carlton @ 2002-11-13 10:49 UTC (permalink / raw)
  To: Jim Blandy; +Cc: gdb-patches

On 07 Nov 2002 15:29:07 -0500, Jim Blandy <jimb@redhat.com> said:

> I've committed this.

> Jim Blandy <jimb@redhat.com> writes:

>> 2002-11-01  Jim Blandy  <jimb@redhat.com>
>> 
>> * macroscope.c: #include "complaints.h".
>> (sal_macro_scope): Cope with filenames that appear in the symtabs,
>> but not in the macro table.
>> * Makefile.in (macroscope.o): Record dependency.

Should PR gdb/621 be closed?

David Carlton
carlton@math.stanford.edu


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RFA: Tolerate filenames present in symtabs but absent from macro info
  2002-11-13 10:49   ` David Carlton
@ 2002-11-13 11:26     ` Jim Blandy
  0 siblings, 0 replies; 8+ messages in thread
From: Jim Blandy @ 2002-11-13 11:26 UTC (permalink / raw)
  To: David Carlton; +Cc: gdb-patches


David Carlton <carlton@math.stanford.edu> writes:
> On 07 Nov 2002 15:29:07 -0500, Jim Blandy <jimb@redhat.com> said:
> 
> > I've committed this.
> 
> > Jim Blandy <jimb@redhat.com> writes:
> 
> >> 2002-11-01  Jim Blandy  <jimb@redhat.com>
> >> 
> >> * macroscope.c: #include "complaints.h".
> >> (sal_macro_scope): Cope with filenames that appear in the symtabs,
> >> but not in the macro table.
> >> * Makefile.in (macroscope.o): Record dependency.
> 
> Should PR gdb/621 be closed?

Yes, done, thanks.


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2002-11-13 19:26 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-11-06  9:41 RFA: Tolerate filenames present in symtabs but absent from macro info Jim Blandy
2002-11-06 10:24 ` Andrew Cagney
2002-11-06 10:34   ` Andrew Cagney
2002-11-06 12:42   ` Jim Blandy
2002-11-06 12:51     ` Andrew Cagney
2002-11-07 12:44 ` Jim Blandy
2002-11-13 10:49   ` David Carlton
2002-11-13 11:26     ` Jim Blandy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox