Я ищу расширение для 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, встроенный в отладчик, если это необходимо. Престижность разработчику этого приложения.