This is the mail archive of the gdb-patches@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: [RFC] varobj deletion after the binary has changed


Daniel Jacobowitz wrote:
On Tue, Jan 23, 2007 at 01:32:22PM +0100, Denis PILAT wrote:
Hi,

We have a bug in one of our gdb target, when the binary changed while beeing debugged it appears that some of our varobj refers to invalid symbols or type.

I propose a patch that delete all varobj when symbols are reloaded. May be there is a better place to do that but I think we must do that somewhere, don't you ?

The right thing to do is probably to figure out where the invalid references come from and fix them - probably by re-evaluating expressions at the next -var-update. Deleting things behind the front end's back is a bad policy.


Deleting all is a little bit radical, I can understand that.
Re-evaluating expression would give the expected thing for globale variables, but for varobj that has been set on local variable (so within a "valid_block"), it should have side effects: the evaluation of the expression might tied the varobj to a variable different than the one the user originally decided.


I propose to distinguish 2 cases
- varobj on global variable (valid_block == null) must have their expression re-evaluated.
- other one must be put in a kind of invalid state that will gives "in_scope="false" to the user.
This last point will involve a new field in varobj structure, I haven't seen something to mark varobj as invalid.


Denis




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