Я хочу реализовать универсальный регистратор, который поможет мне увидеть стек вызовов методов.Получить stacktrace внутри C# метод
Я знаю, что есть некоторые методы из System.Diagnostic, но они были введены в .net 4.0, и я боюсь, что он не будет работать на ядре xamarin или .net или что-то в этом роде. Поэтому я хочу иметь более универсальное решение.
Другой проблемой является async \ await, который вводит некоторый беспорядок.
Мне нужно пропустить дополнительный параметр в каждом методе, который хранит некоторый контекст и помогает мне определить стек вызовов, но это решение является немного сложным.
Также я могу прочитать память стека потоков, используя небезопасный код, и сам проверить стек вызовов, но он не является надежным.
Есть ли другое решение?
Вы могли бы, конечно, взломать вокруг: выбросить исключение, поймать его и читать стек вызовов от него :) – MarcinJuraszek
@MarcinJuraszek Nice хак :), но я боюсь, что это будет влиять на производительность слишком много. – Neir0