Re: [PATCH/RFC] faster language identification

Daniel Jacobowitz
2002-11-13T18:11:25Z

On Wed, Nov 13, 2002 at 12:45:50PM -0500, Jim Blandy wrote:
>
> Daniel Jacobowitz <drow@mvista.com> writes:
> > On Sun, Nov 10, 2002 at 05:01:25PM +0200, Elias Athanasopoulos wrote:
> > > Hi Michael,
> > >
> > > On Thu, Nov 07, 2002 at 12:55:47PM -0800, Michael Snyder wrote:
> > > > Elias Athanasopoulos wrote:
> > > > > On Thu, Nov 07, 2002 at 02:48:38PM -0500, Daniel Jacobowitz wrote:
> > > > > > No, the patch converts the psymtab to a symtab and uses the language in
> > > > > > the symtab. That's what I want you NOT to do. psymtab_to_symtab is
> > > > > > expensive!
> > > > Perhaps the patch could be added to psymtab_to_symtab,
> > > > so that it would not try to get the language until
> > > > the symbols were going to be read anyway?
> > >
> > > Yes, that may work, although I don't know exactly where gdb *really* needs
> > > to set the language.
> > >
> > > I was thinking of what Daniel proposed; a psymtab_language() function. But,
> > > even in the DWARF case, consider this:
> > >
> > > % gcc -Wa,-gdwarf2 bar.s foo.c -o foo
> > >
> > > Now, the language should be set to 'asm'? This is what you'll get if you try
> > > to parse the .debug_info section. Currently, gdb in the above case sets it
> > > to 'c'.
> > >
> > > Also, there is the case that you enable DWARF in both as and gcc, but I think
> > > this shouldn't be allowed by gcc.
> >
> > Well, it _should_ be asm. We don't have line number information for
> > the .c source. IMHO.
> >
> > (Also IMHO, the user just shouldn't do that...)
>
> Shouldn't do what? Compile assembly with debug info? Link object
> modules with a mix of debuggingness? I don't see what's wrong...

No, compile C with assembly debug info, which that command line also
does. That's the one that'll confuse us.

> The right behavior here, it seems to me, depends on which module
> contains 'main'. If that module has debug info, we should use that to
> choose the initial language; otherwise, we can guess from the source
> filename. Even .c files compiled without debugging info have a .file
> directive in the assembly code, which turns into an STT_FILE linker
> symbol.

--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer