Я возился с API-интерфейсом надстройки Visual Studio, пытаясь понять, возможно ли что-то, что я хочу сделать. Одна вещь, которую я делаю прямо сейчас, это что-то вроде:
public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled)
{
_applicationObject.Events.DebuggerEvents.OnExceptionThrown += DebuggerEvents_OnExceptionThrown;
handled = false;
if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault)
{
if(commandName == "MyAddin1.Connect.MyAddin1")
{
handled = true;
return;
}
}
}
void DebuggerEvents_OnExceptionThrown(string ExceptionType, string Name, int Code, string Description, ref dbgExceptionAction ExceptionAction)
{
//how to get line number here?
}
В идеале я хотел бы иметь возможность получать текущую функцию и номер строки всякий раз, когда отлаживаемая программа выдает исключение. Это возможно?