Hello, dear friends,
When I implement a Expression Evaluator with Visual Studio 2008 SDK, I meet a problem that expression type of struct or array that contains several level children, when execute a step and evaluate the struct or array, its children's property sometimes are lost. For example, here's a struct g defined like this
struct g { int[] a, char b }
add a watch variable group type of g, there's a plus symbol '+' front of group and its child a, that means they can be extended. I extend the plus symbol '+' front of group.
Now, execute a step in debugger, and Evaluator begin to call EvaluateSync() to get expression property, it succeed.
Then, this property (implements IDebugProperty2) member interface EnumChildren will be called because group is extended.
While, plus symbol '+' front of a is lost.
I find out that the EnumDebugPropertyInfo that implements IEnumDebugPropertyInfo and return to Visual Studio by EnumChildren, call its GetCount() but no Next().
How does it happened? IEnumDebugPropertyInfo don't call its Next? This appreas on Windows XP less more than Windows7... I'm very confused and have no way to fix it...
Wish your reply.... Thanks very very very much.... = =#