This is the mail archive of the gdb@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: decode_variable's use of not_found_ptr


 >  >> but at the bottom of the function it says:
 >  >>
 >  >>
 >  >>  if (not_found_ptr)
 >  >>    *not_found_ptr = 1;
 >  >>  throw_error (NOT_FOUND_ERROR, _("Function \"%s\" not defined."), copy);
 >  >>
 >  >>
 >  >> Now, I must confess gdb's internal exception mechanism is deeply
 >  >> mysterious to me, but that code looks to me like it doesn't do what the
 >  >> comment claims.  i.e. if not_found_ptr is non-NULL, it still issues the
 >  >> error message.
 >  >>
 >  >> What's wrong - my reading of the code, or the code?

I think this part is right and the clue is in the macro NOT_FOUND_ERROR.

 > Had a quick look at 6.3's code, and that is indeed different:
 > 
 > if (not_found_ptr)
 >    {
 >      *not_found_ptr = 1;
 >      /* The caller has indicated that it wishes quiet notification of any
 >       error where the function or file is not found.  A call to
 >       error_silent causes an error to occur, but it does not issue
 >       the supplied message.  The message can be manually output by
 >       the caller, if desired.  This is used, for example, when
 >       attempting to set breakpoints for functions in shared libraries
 >       that have not yet been loaded.  */
 >      error_silent ("Function \"%s\" not defined.", copy);
 >    }
 > 
 > For some reason the error_silent seems to have got chopped in version 
 > 6.4.  I'll submit a problem report.

Looking at the Changelog error_silent has been deleted and replaced with
throw_error.  I think the problem is elsewhere, in break_command_1
in breakpoint.c maybe:

	case NOT_FOUND_ERROR:
	  /* If called to resolve pending breakpoint, just return
	     error code.  */
	  if (pending_bp)
	    return e.reason;

	  exception_print (gdb_stderr, e);

I guess that pending_bp is NULL in your case and you need to debug GDB to see
why. 

It would probably also help (those more knowledgable than me) if you said how
your GDB has been configured.

-- 
Nick                                           http://www.inet.net.nz/~nickrob


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