Re: Multiplexed registers and invalidating the register cache

Andrew Cagney
2004-04-21T16:48:54Z

> Andrew Cagney wrote:
>
>>
>> - the frame cache is built on-demand, hence the absence of any explict rebuild call (one characteristic of a frame ID is that it survives frame cache flushes)
>
>
> In other words, I shouldn't expect to see a whole lot of communication with the remote target simply because I flush the frame cache.

Yes.

>> - there shouldn't be separate register and frame flush calls, combining the two into a single observer call is a thing-to-do-today
>
>
> Ok, let's see if I understand this correctly. Sorry if I'm asking what is (or should be) obvious (I only see observer.exp using this code as of now, so it's not clear to me how this is supposed to be used within GDB).
>
> A new event needs to be defined (user_changed_registers(?), taking the register number as an argument). This will give us attach/detach/notify functions related to that event. So, someone needs to attach a callback: is this something that should be done in target-specific files?

Simpler, "target_changed" - no parameters.

> If so, should targets provide their own callback implementation (which flushes the register and frame cache when deemed appropriate), or should there be a predefined function that the target-specific file simply references when attaching the callback?

The core code, after doing the write, should trigger this event ...

> In addition, someone needs to notify that the event has happened, but I assume these notifications should be inserted at the same places that register_changed_hook is called for GUI purposes.

... [yes] replacing registers changed.

> Anything I missed or misunderstood?

No, you've got the theory.

Andrew