Bug 250336 - [expressions] Expression service attempts to create an expression that does not exists more than once
Summary: [expressions] Expression service attempts to create an expression that does n...
Status: ASSIGNED
Alias: None
Product: CDT
Classification: Tools
Component: cdt-debug-dsf-gdb (show other bugs)
Version: 0 DD 1.1   Edit
Hardware: PC Linux
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Jonah Graham CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-10-09 15:55 EDT by Marc Khouzam CLA
Modified: 2020-09-04 15:24 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marc Khouzam CLA 2008-10-09 15:55:44 EDT
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.