"Children cannot be Evaluated" on C++/CLI after VS2012 Update 2 - by André Poffo

Status : 


Sign in
to vote
ID 783004 Comments
Status Closed Workarounds
Type Bug Repros 14
Opened 4/4/2013 9:53:59 AM
Access Restriction Public


After I installed VS 2012 Update 2 I got the message "Children cannot be evaluated" in the local variables of a DLL C + + / CLI.
Sign in to post a comment.
Posted by Martin Hammerschmied on 5/23/2013 at 8:16 AM
I installed Update 3 RC and there is one problem remaining. Usually when an object behind a pointer is evaluated, intellisense tells me the exact type of the object. Even if this type is a derivative of the pointer type i am using. After installing update 3 the object can be evaluated, *but* intellisense only recognizes it as an object of the exact type of the pointer.
Posted by Microsoft on 5/7/2013 at 4:43 PM
Good news. The fix for this issue is now available in the Visual Studio 2012 Update 3 RC. You can download this update from here:

Visual Studio Debugger Team
Posted by Microsoft on 4/30/2013 at 11:31 AM
I will also add a link to the update in this bug when it is available.

Visual Studio Debugger Team
Posted by RocketRob on 4/30/2013 at 7:54 AM
Thanks. What/where is Brian Harry's blog?
Posted by Marc [MSFT] on 4/25/2013 at 4:02 PM
Thanks to everyone for the detailed information. We have made a fix that will be made available in the next CTP of update 3. Please look for that announcement on Brian Harry's blog in the future.

Sorry for the inconenience. The uninstall issue that jschroedl reported has been routed to the ATL team and they have suggested a workaround on the other connect bug.

Thanks again everyone.

Marc Paine
Visual Studio Debugger QA Lead
Posted by jschroedl on 4/23/2013 at 8:03 AM
I opened this issue for the irreparable damage done when uninstalling Update 2. Please upvote

Posted by jschroedl on 4/23/2013 at 7:53 AM
Be warned! Uninstalling Update 2 followed by a Repair of VS will leave you unable to build C++ projects. It deletes many of the ATL headers and libraries and they are not put back. For me, even a full VS uninstall followed by a re-install will not put the ATL files back. It looks like perhaps a registry key is left which indicates that the ATL files do not need to be updated/installed. I will need to open another connect issue for this and am really stuck at the moment.
Posted by DragonIncarn8te on 4/22/2013 at 10:51 AM
Uninstalled Update 2 (using update tab), rebooted, repaired VS2012, rebooted, then was able to view the types in the debugger/watch windows in CLI/C++ code. Nothing else changed except removing the update. However, there are things I need in Update 2 so I must re-install. Just wanted to verify that uninstalling Update 2 restored functionality to C++/CLI debugger.

Microsoft is there a work-around that doesn't require uninstalling Update 2?
Posted by Excelcius on 4/20/2013 at 11:45 PM
@jschroedl: I think you can uninstall Update 2 on its own using the Windows dialog "Installed Updates". It's not listed in Add/Remove Programs. I have never tried this though.
Posted by AceHack on 4/19/2013 at 6:55 PM
I don't consider not having update 2 a workaround. Is there any real workaround? Thanks.
Posted by DragonIncarn8te on 4/19/2013 at 2:15 PM
I am able to reproduce this as well. Under Tools->Options->Debugging->General->Managed C++ Compatibility mode is checked. If it is not checked, you can't hit a breakpoint or step into the C++ code.
Posted by jschroedl on 4/19/2013 at 12:45 PM
Can you post the proper steps to remove Update 2? I don't see Update 2 listed explicitly anywhere in either "Add/Remove Programs" or the VS list of "Extensions and Updates".

Do I need to uninstall VS2012 altogether and re-install it + Update 1?
Posted by RocketRob on 4/18/2013 at 6:24 PM
Thank you for the update. Is there *any* chance that the fix would be available soon? Or are we looking at waiting 3 to 6 months or longer for it?
Posted by Marc [MSFT] on 4/17/2013 at 11:45 AM
Thanks all for the feedback. From your descriptions, we have been able to track down the repro and the cause of the issue. We are working on a potential fix now but at the moment, the only workaround is to uninstall Update 2. I apologize for the inconvenience.

Marc Paine
Visual Studio Debugger QA Lead
Posted by Nathan Jeffords on 4/17/2013 at 10:04 AM
I have similar issues with a native project building using the VS2010 compilers on VS2012.2 IDE/Debugger. In my setup, intellisense debugging, conditional breakpoints, autos and the watch window are all broken. All except intellisense report "Unspecified error occurred" when trying to evaluate an expression. All was working well before installing Visual Studio 2012 Update 2.
Posted by Florian Mücke on 4/17/2013 at 6:14 AM
I can confirm this issue as well. The conditions are like stated before: mixed mode debugging of a C++/CLI project and watching std:string or CString items.

Sample code was submitted.
Posted by RobDiaz on 4/16/2013 at 11:23 AM
Answering the question from 4/4/2013 for my project, which is made up of DLLs (C++ native and managed, C#) and EXEs (C++ native and managed).

1. The Debug | Windows | Processes window shows "Debugging>    ro.exe    10856    C:\Code\roCPM\Debug\ro.exe    Columns: bud2013* - ro    Break    Managed (v4.5, v4.0), Native    Default    NEPTUNE    

2. I have tried the Managed C++ Compatibility mode both checked and unchecked with no difference in this behavior.

Net sum: No complex types can be displayed in the debugger. Local simple types work, but any type that is not simple is detected and recognized as complex but is not broken out and displayed.

I would really appreciate workarounds or a fix for this in the immediate timeframe because this is virtually unuseable now.
Posted by André Poffo on 4/16/2013 at 7:54 AM
My problem is the same Excelcius and mrgez
Posted by Excelcius on 4/12/2013 at 10:54 AM
I'm not sure if it's exactly the same error as stated by André Poffo, but I get the same results as mrgez and it seems to be a very similar problem. The debugger in Update 2 behaves as if the managed C++ compatibility mode is disabled. Complex classes cannot be evaluated and even primitive stack variables in methods using MSIL one way or another sometimes cannot be shown in the watch-windows. Only very simple statements like local int variables are shown.
The type info seems to be missing. The debugger knows that it is a complex type, but not what type exactly, so the watch window only states {...} without any possibility to expand and view the child items.
This makes debugging almost impossible and makes Update 2 unusable for developers relying on C++/CLI.
Posted by André Poffo on 4/5/2013 at 5:39 AM
Answering the questions: 1) debug mode is "mixed" and 2) yes, it is checked.
Posted by mrgez on 4/5/2013 at 2:49 AM
I can confirm this issue. To reproduce, simply create a new "Visual C++ CLR Console Application", add a std::string in main() and then debug and try to inspect the string in the watch window. The column "Type" is empty and the watched variable cannot be expanded to see its value.

Debug mode is mixed ("Managed (v4.5, v4.0), Native"), "Managed C++ Compatibility Mode" is enabled.
Posted by Microsoft on 4/4/2013 at 4:34 PM

To help us investigate this issue, we have a couple questions.
1) What kind of debugging are you doing: native only, managed only, or mixed? You can verify this by looking at the in the "Debugging" column of the processes window (available by clicking Debug->Windows->Processes).
2) Under Tools->Options->Debugging->General, is the box for "Managed C++ Compatibility Mode" checked?

Visual Studio Debugger Team
Posted by Microsoft on 4/4/2013 at 10:51 AM
Thank you for your feedback, we are currently reviewing the issue you have submitted. If this issue is urgent, please contact support directly(http://support.microsoft.com)