Как получить собственный stacktrace из собственных исключений, пойманных в управляемом коде

У меня есть некоторый управляемый код, который звонит в метод в некотором собственном DLL (у меня есть соответствующие файлы символов).
Иногда, тот собственный метод выдает исключение, которое я ловлю в своем управляемом коде. Однако, когда я печатаю stacktrace от своей перехваченной исключительной ситуации, я вижу только управляемый код (последний кадр является вызовом к собственному коду.. но это не видит stacktrack в рамках собственного кода).

Как я могу получить собственный стек вызовов также?
*Когда я отлаживаю код, я могу ступить в собственный код и видеть фактический стек вызовов.

5
задан Stephen Cleary 17 May 2010 в 16:26
поделиться

1 ответ

Получить трассировку стека родной программы довольно сложно. К моменту прохождения через слой трансляции .NET/native трассировка стека уже потеряна.

Таким образом, вам нужно перехватить его еще в родном коде, а это тоже довольно сложно. Посмотрите на работу Джона Роббинса по правильной трассировке родного стека; последняя общедоступная версия его SUPERASSERT, которую я смог найти, относится к MSJ, Feb 1999.

3
ответ дан 15 December 2019 в 00:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: