__ ReturnAddress
Из MSDN:
Внутренний _ReturnAddress обеспечивает
адрес инструкции в
вызывающая функция, которая будет выполнена
после контроля возвращается к звонящему
Обратите внимание, что на некоторых платформах результат может вводить в заблуждение из-за складывания хвоста - компилятор может иметь внутреннюю функцию, возвращающую глубину 2 уровня. Обычно это может происходить для кода, подобного этому:
int DoSomething()
{
return DoSomethingSpecial();
}
Компилятор может генерировать код, поэтому DoSomethingSpecial возвращает непосредственно вызывающей стороне DoSomething.
Кроме того, обратный адрес недостаточно надежен, чтобы принимать решения по безопасности, см. здесь .