Хорошо, у меня есть проект VSIX, в котором я пытаюсь программно управлять шагом в функцию отладки, а затем получить строку, которая будет выполняться следующей, в виде строки. Мне удалось это сделать с помощью следующего кода:
//Executes step into as though use pressed the button on the toolbar
public static void StepInto(DTE dte)
{
ThreadHelper.ThrowIfNotOnUIThread();
Debugger debugger = (Debugger)dte.Debugger;
debugger.StepInto(true);
}
//Returns a string that contains the current line of code in the debugger (Doesn't work on dissasembly)
private string GetCurrentLine(DTE dte)
{
string currentline;
ThreadHelper.ThrowIfNotOnUIThread();
//Throws exception here because the var activePoint is null
//and then when assigning currentline there is a null reference
var activePoint = ((TextSelection)dte.ActiveDocument.Selection).ActivePoint;
currentline = activePoint.CreateEditPoint().GetLines(activePoint.Line, activePoint.Line + 1);
return currentline;
}
Проблема в том, что активный документ не представляет окно дизассемблирования, по крайней мере, я так думаю. Весь смысл этого проекта состоит в том, чтобы пройти через сборку, и я не могу понять, как делать то, что я хочу. Есть ли способ получить текущую строку в дизассемблере?