Re: RFA: assert that target_fetch_registers did its job

Daniel Jacobowitz
2004-07-24T00:45:37Z

On Fri, Jul 23, 2004 at 05:59:11PM -0500, Jim Blandy wrote:
>
> Does anyone see anything wrong with this? Should it be an error, or a
> warning, instead of an internal error? It seems to me that the error
> should be furnished by the target-specific code; if
> target_fetch_registers returns silently, it should have done its job.

It shouldn't be an error. internal-error makes the most sense to me;
if we need to relax it while some broken target is worked on, then
it should be a warning or silent.

> But thread_db_fetch_registers doesn't follow that assumption. In the
> threaded case, given any register number, it fetches the gprs, and the
> fprs, supplies them, and assumes its job is done. It seems to me it
> sholud be calling register_valid_p (current_regcache, regno) to check
> that the register's value has really been supplied, and complaining if
> it hasn't.

I suggest we slay thread_db_fetch_registers.

Once upon a time, it served a purpose. Now it is nothing but a source
of problems. We could pass opaque cookies rather than register data
through the gregset structure - the interface doesn't really support
this but at least two of the five thread-db implementations I'm aware
of would. Or we could just give up, use thread-db for nothing besides
finding new threads, and ask the LWP for its registers directly without
six or eight call frames of indirection.

--
Daniel Jacobowitz