Как работает StackCrawlMark и что такое точка ESP? - PullRequest
1 голос
/ 03 февраля 2020

Мой вопрос касается внутреннего типа перечисления System.Threading.StackCrawlMark . Я понимаю, как используется перечисление, но не то, как оно работает.

Согласно справочному источнику:

объявление локального var этого типа перечисления и передача его с помощью ref в функция, которая должна выполнить сканирование стека, предотвратит встраивание вызова и передаст точку ESP для сканирования стека в

Глядя на то, как enum используется в различных классах, я могу видеть, что иногда прошло еще до 4 методов. (Например, см. Использование в MethodInfo.GetCurrentMethod метод.)

Мой вопрос таков: что такое точка ESP и как передача StackCrawlMark в качестве ссылки ref сохраняет местоположение на каком он был создан? Как только код в конце концов достигает вызова extern, как он узнает, в каком методе был создан StackCrawlMark?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...