Я унаследовал довольно большое приложение WPF, и мне нужно создать трассировку приложения для значительной части его. Из-за сложности проекта я хотел бы сделать это без внесения каких-либо изменений в базу кода, если это возможно. Мне в основном нужно знать дельтах стека, т. Е. Когда происходит вызов функции или возврат. Есть ли инструмент или методология, которые получат мне этот след (желательно) без изменений кода? Возможно ли это сделать даже без написания инструмента для добавления вызовов Trace к коду?инструмент для отслеживания приложений без изменений кода?
Если бы это было ограничено конкретными вызовами функций, я думаю, что я мог бы жить с этим. У меня есть инструмент, который может сделать это для вызовов win32 api, с помощью перезаписи таблицы импорта, чтобы перенаправить вызов функции dll на пользовательский заглушка, который регистрирует стек вызовов в этой точке. Если нет такого инструмента, который работает «из коробки» на .NET, знает ли кто-нибудь FAQ или что-то, что объясняет, как работает связь .NET DLL (таблица экспорта, thunks и т. Д.)?
Из-за большого размера приложения, как вы говорите, я ищу архитектурный анализ. Я посмотрю в NDepend, спасибо за предложения :) –