This is the mail archive of the 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]: error_silent for use in pending breakpoint support

To properly support pending breakpoints, gdb needs to be able to suppress the "not found" messages at will, but it also needs to sometimes issue these messages and determine the cause of the error was a "not found" event.

To handle the problem, I propose two new useful functions in utils.c. The first is error_silent() which works just like error(), only it does not issue the error message. Like error(), it stores the error message in gdb_lasterr. This leads to the other new function: error_last_output() which is used to output the last error message.

This allows the pending breakpoint support to issue the error message when the user is doing the initial break command and to suppress it when shared libraries are being loaded or a pending breakpoint is reenabled.

(I noticed this mentioned linespec so left it, it's really more of a change to utils though).

What does the stack look like at the point where error_silent is being called?

I'm thinking that something more like:

	catch_exception_error (....., &error_mesg);
	throw_error (message, ...) // silent

	catch_exception_silently (..., &error_mesg);
	error (message, ...)

would be better. With that it should be possible to avoid the stateful error_last_output interface. I think this would also be better long term as it should lend itself to the recursive case (where an error is being propogated up the stack).


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