This is the mail archive of the gdb-patches@sources.redhat.com 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]

Re: [PATCH] ia64-tdep.c: Only warn about slot numbers > 2


On Mar 22, 10:49am, Andrew Cagney wrote:

> Kevin Buettner wrote:
> 
> > +  /* Warn about slot numbers greater than 2.  We used to generate
> > +     an error here on the assumption that the user entered an invalid
> > +     address.  But, sometimes GDB itself requests an invalid address.
> > +     This can (easily) happen when execution stops in a function for
> > +     which there are no symbols.  The prologue scanner will attempt to
> > +     find the beginning of the function - if the nearest symbol
> > +     happens to not be aligned on a bundle boundary (16 bytes), the
> > +     resulting starting address will cause GDB to think that the slot
> > +     number is too large.
> > +
> > +     So we warn about it and set the slot number to zero.  It is
> > +     not necessarily a fatal condition, particularly if debugging
> > +     at the assembly language level.  */
> 
> Is this a warning or an internal warning?

I think it should be a warning.  The condition that it's warning about
can easily be generated by the user.  Also, even though GDB generates
it, I don't think there's much we can do to guard against it.  (If
there were, I would've fixed GDB elsewhere!)

> Hmm, that in turn begs the question:  Should there be the function
> internal_warning() to match internal_error()?

Probably.

What is the difference between warning() and internal_warning() aside
from the fact that the filename and line number are printed for the
latter?  I.e, is there some way the user can tell GDB to shut up
about internal warnings?

> One of those secret plans involves adding the code:
> 
> 	static int been_here_before = 0;
> 	if (! been_here_before && warning_deprecated)
> 	  {
> 	    been_here_before = 1;
> 	    internal_warning (__FILE__, __LINE__, __FUNCTION__,
> 			      "deprecated function called");
> 	  }
> 
> to all deprecated functions.

I think something like this would need to be shut off for ordinary
users.  But GDB developers should be forced to run GDB with this
turned on.  It might be just enough of a thorn to persuade us to
abandon deprecated functions in relatively short order.  (Which I
assume was the intent of this now-not-so-secret plan?)

Kevin


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