Возможно найти имя класса объекта с generator
.Более подробную информацию можно получить с помощью других средств, отсортированных от более высокого уровня к более низкому уровню:
- , вызывающего функцию
generating_type
, которая возвращает объект типа TYPE
- , используяпотомок класса
REFLECTED_OBJECT
(существуют версии для ссылочного объекта и для расширенного объекта), чтобы копаться в структуре объекта - , используя классы
REFLECTOR
или INTERNAL
для низкоуровневых манипуляций с меньшей абстракцией
Не существует стандартного механизма для получения сведений о выполняемой в данный момент функции или ее вызывающей стороне.Еще можно получить эту информацию из трассировки стека исключений.Идея заключается в следующем:
- Добавьте функцию, которая фактически будет вести запись в журнал.
- Добавьте к этой функции некоторый код, который вызовет исключение.
- Catchисключение в предложении восстановления функции.
- Анализировать трассировку стека, полученную с
{EXCEPTION}.trace
на один или два уровня вверх (некоторые эксперименты необходимы для получения правильного результата). - Записатьинформация о вызывающем абоненте (класс + функция + номер точки останова).
Хотя это возможно, производительность будет проблемой, поскольку обработка исключений и их разбор являются медленными операциями.