Я ищу расширение для Visual Studio, где в режиме отладки можно выполнить один шаг через промежуточный язык рядом с С#.
Я не ищу решение для отладки управляемого и неуправляемого кода.
Я ищу расширение для Visual Studio, где в режиме отладки можно выполнить один шаг через промежуточный язык рядом с С#.
Я не ищу решение для отладки управляемого и неуправляемого кода.
Какова ваша цель? Является ли ваш IL, сгенерированный компилятором С# или динамически созданным во время выполнения? Если первый, вы можете использовать трюк для повторной компиляции вашего двоичного файла через ilasm
.
перекомпилируйте файл .il, чтобы получить новый двоичный файл (и новый символ)
ilasm.il [/exe |/dll]/debug
Теперь при отладке этой конкретной сборки вы увидите код IL, а не код С#. Вы также увидите соответствующие строки из исходного файла С#, если вы выберите подходящую опцию на шаге 2.
В случае динамически генерируемого IL я просто использовал бы WinDbg с расширением SOS. Он может сбрасывать IL и проходить через него, но требуется немного, чтобы привыкнуть.
Я не думаю, что здесь нужен внешний дизассемблер. Когда вы отлаживаете VS 2010 (хотя и не Express), вы можете щелкнуть правой кнопкой мыши по окну кода и выбрать "Go To Disassembly", чтобы пройти через код IL. Может быть, это то, что вы ищете? Подробнее здесь
Хотя это и не совсем расширение Visual Studio, как требовал OP, теперь, возможно, есть даже лучший способ сделать это, используя dnSpy, всеобъемлющий, автономный инструмент отладки .NET с открытым исходным кодом. Инструмент на самом деле делает гораздо больше, чем просто отладка; например, он позволяет напрямую редактировать .NET и собственные (PEFile) сборки, обфусцировать их, просматривать и изменять необработанные управляемые и собственные заголовки, контент, ресурсы, BAML и метаданные и многое другое, что я, вероятно, не обнаружил.
В целях обсуждения на этой странице обязательно ознакомьтесь с разделом интерпретатора IL проекта dnSpy. Точно так же, как запрошено OP, это библиотека, которая реализует интерпретатор IL для имитации (ILT) выполнения кода IL параллельно с одноступенчатым пошаговым (фактическим) собственным инструктором отладчика, с целью отображения состояния (логический) стек выполнения IL. Я полагаю, что в отладчике есть отличная рендеринг x86/x64, встроенный в отладчик, если это необходимо. Престижность разработчику этого приложения.