This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] Fix too many "no debugging symbols found" warnings.


On Thu, Jul 2, 2009 at 6:27 AM, Pedro Alves<pedro@codesourcery.com> wrote:
>> executables, or anything manually done from the command line (one can
>> think of executables as falling in this category).
>
> Okay, I saw the original patch now. ?Let's focus on that first.

I'm not sure that's what I'd do first, but ok.
[The problem I'm trying to solve hasn't changed, I figured we'd just
focus on that.]

> This could be
> reasonable, I suppose:
>
> set print symbol-loading auto|on|off
> ? ? ? ? ? ? ? ? ? ? ? ? ? ^ ?^ ? ^
> ? ? ? ? ? ? ? ? ? ? ? ? ? | ?| ? |
> ? ? ? ? ? ? ? ? ? ? ? ? ? | ?| ? +- never
> ? ? ? ? ? ? ? ? ? ? ? ? ? | ?|
> ? ? ? ? ? ? ? ? ? ? ? ? ? | ?+----- always, output even when gdb auto-loads
> ? ? ? ? ? ? ? ? ? ? ? ? ? |
> ? ? ? ? ? ? ? ? ? ? ? ? ? +-------- default, output only when gdb auto-loads
>
> although IIUC, GDB never behaved like that "on" setting, so maybe we can
> ignore that option, and think of "auto" -> "on". ?OTOH, the "on" above
> matches what "set verbose" does. ?Keep reading.
>
>[...]
> > Thirdly, symbol-loading-warnings is a compatible renaming of
> > symbol-loading [...]
>
> That's ingenious, but overboard, if you ask me. ?An even more compatible
> change would be to not change the command name at all.

I wouldn't categorize it as ingenious.  Overboard, I dunno, it's just
an option name.
I'm not sure different levels of compatibility are at play here,
really, but ok, if you strongly want one or not want the other I can
go with the flow here.

>>
>> Fourth, gdb doesn't print symbol loading messages if (!from_tty &&
>> !info_verbose).
>
> Right...
>
>> Except for the "no debugging symbols found" warning,
>> "print symbol-loading" doesn't apply unless either of those flags are
>> true (in current cvs).
>
> ... and isn't this the real problem here? ?If we're not printing the
> "Reading symbols from foo...done." part, then we should not print the
> "no debugging symbols found" message either, ever, should we? ?Can't we
> just decide to output that latter warning under the same predicate as
> for the former "Reading..." output? ?It seems clear to me that it's
> formatting intent was to be always output in between
> the "from foo.so..." and "...done." bits.
>
> ?"Reading symbols from /lib/librt.so.1...(no debugging symbols found)...done."
>
> That is, it was missing a "(from_tty || info_verbose)" check?
>
> Why do we need the new option for this specific warning at all?

If that's what users want, great.
The question I have is: for the case of auto-loaded libraries do they
want the warning and otherwise have gdb stay silent?
In the case of a smallish number of libraries it sounds reasonable to
me, but whatever, I can go with the flow here too. :-)

>> Put this all together and that's why the patch is the way it is.
>>
>> Ultimately, I don't have a strong opinion on having both options. ?I
>> do have a strong opinion on providing an option to the user to let
>> them turn off the "no debugging symbols found" message (and other such
>> messages) from automatically loaded libraries.
>
> I think we're complicating things. ?If GDB is *already printing something*,
> like:
>
> ?"Reading symbols from /lib/librt.so.1... ...done."
>
> ... then it should not be a problem for anyone to see this:
>
> ?"Reading symbols from /lib/librt.so.1...(no debugging symbols found)...done."

I think that's a given, and the patch has that behavior intentionally.

> OTOH, if GDB is printing nothing, then printing a sole:
>
> ?"(no debugging symbols found)"
>
> out of the blue, doesn't ever seem useful to me. ?Is that ever really useful?

Well, s@no debugging symbols found@no debugging symbols found in
/usr/lib/libfoo.so@.

Users would like to know that something isn't going to work because
debug info is missing.
That is useful.
We could tell them differently of course.  Maybe an option to "info
shared" to only show the ones without debug info or some such.

> Wouldn't tweaking the "no debugging symbols found" predicate make everyone happy?

"Tweaking" as in only printing "no debugging symbols found [in
/usr/lib/libfoo.so]" if (from_tty || info_verbose), and never printing
it for auto-loaded libraries?
Or something else?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]