Наблюдаете за стеком .NET или CIL во время отладки Visual Studio 2010? - PullRequest
3 голосов
/ 02 октября 2010

Я пытаюсь отладить сборку, которая была скомпилирована в режиме выпуска, поэтому все «хорошие вещи», такие как локальные переменные, оптимизированы.CIL и стек .NET, но у меня нет такой опции в Visual Studio 2010 - у меня есть только представление «Разборка, регистры и память», которое на один уровень ниже.

Есть ли способотладить CIL в Visual Studio 2010?

Это .NET 3.5 SP1, если это имеет значение.

1 Ответ

3 голосов
/ 02 октября 2010

Это фундаментально для .NET, вы никогда не выполняете IL.JIT-компилятор переводит его в машинный код, у них очень мало общего.Вы не можете видеть выполнение IL, только машинный код.

Да, все, что вам нужно, чтобы иметь некоторое представление о значении локальной переменной, - это окно разборки и окно регистров.Последний показывает вам их значение, когда они загружаются в регистр процессора.Некоторое знание сборки x86 (или x64) требуется, чтобы увидеть соответствие между C # и кодом сборки, чтобы узнать, какой регистр содержит какую локальную переменную.Вам нужно использовать окно памяти, чтобы посмотреть на стек, но это довольно непрактично, вам нужно знать значение регистра ebp и смещение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...