Bug 2630 - Cannot display locals in default M4A template
Summary: Cannot display locals in default M4A template
Status: RESOLVED FIXED
Alias: None
Product: Xamarin Studio
Classification: Desktop
Component: Debugger ()
Version: Trunk
Hardware: PC Windows
: High major
Target Milestone: ---
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2011-12-23 20:05 UTC by Mikayla Hutchinson [MSFT]
Modified: 2011-12-24 02:10 UTC (History)
1 user (show)

Tags:
Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED FIXED

Description Mikayla Hutchinson [MSFT] 2011-12-23 20:05:37 UTC
MonoDevelop 2.8.5 could not handled locals that had been hoisted to a closure object called "CS$<>8__locals2", generated by csc.

In addition, the actual closure object could not be inspected because of an error:
"Unknown identifier: CS"

It looks like it's trying (and failing) to evaluate the expression instead of resolving it directly.

This affects the default Mono for Android template on Windows.
Comment 1 Mikayla Hutchinson [MSFT] 2011-12-23 22:21:23 UTC
Similarly, when in a lambda, the local may show temporary locals of the form CS$0$000, and they cannot be evaluated because the evaluator chokes on the $.
Comment 2 Mikayla Hutchinson [MSFT] 2011-12-24 00:18:56 UTC
I have a fix locally for this specific case which I'll try to land soon.

However, we really should reverse-engineer and document all of the patterns generated by various versions of csc, mcs, vbc etc for anon delegates, iterators and async, and make sure we support them all.

We should also fix the evaluator to allow evaluating these compiler-generated names, and add an option for suppressing these transformations for advanced use.
Comment 3 Mikayla Hutchinson [MSFT] 2011-12-24 01:59:11 UTC
Pushed the fix for the locals, will leave the bug open for the other issues.
Comment 4 Mikayla Hutchinson [MSFT] 2011-12-24 02:10:57 UTC
Filed separate bugs for those issues, this is now resolved.