Community
Participate
Working Groups
To evaluate an expression the ExpressionService must ask GDB to create it. If the expression is not valid, GDB will return an error. This error is kept in the ExpressionService cache, in most cases; however, if we were to select the line of the invalid expression, the expression view makes a call to IExpressions.canWriteExpression() to know if the cell should be editable. This call uses a different MetaCommand and is not cached, so the ExpressionService attempts to re-create the variable, and again fails. Currently, the MIVariableManager keeps track of variables that were created successfully; maybe it needs to also keep track of the failures. Such a list of failures would be reset on every resume/suspend.