У меня есть расширение Visual Studio, которое подключается к событиям отладки. Когда отладчик останавливается на строке кода, вызывается мой обратный вызов IDebugEventCallback2
, и я могу узнать имя файла и номер строки, где остановился отладчик, через IDebugThread2::EnumFrameInfo
.
Я хотел бы знать диапазон строк исходного кода, который охватывает текущая функция.
Я надеюсь, что можно получить нужную мне информацию из интерфейсов отладчика - отладчик должен знать линейный диапазон функций. Если это невозможно, я открыт для других методов. В идеальном мире решение работало бы без системы проектов - многие люди, включая меня, используют Visual Studio в качестве автономного отладчика без использования системы проектов. (Кроме того, я не могу полагаться на Roslyn - он должен работать в существующих версиях Visual Studio.)
Изменить: метод Карлоса с использованием FileCodeModel
работает хорошо, если файл является частью проекта. Я все еще хотел бы знать, есть ли метод, который не требует системы проектов.