Быстрое получение позиции в стеке

Иногда при разработке расширений или использовании отладочных скриптов, возникает необходимость в получении определенного уровня в стеке вызовов. В основном для этого используется FM SYSTEM_CALLSTACK, но как правило интересует не весь стек, а лишь определенный его уровень (обычно вызывающая программа или процедура), для получения данных стека относительно уровня можно воспользоваться классом: CL_RECA_SYSTEM_CALLSTACK и его статическим методом — GET_CURRENT_SOURCE_POS.

Пример:

 

5 комментариев

  1. Добрый день!
    А возможно ли получить доступ( на чтение и изменения ) к данным вышестоящего уровня стека?

    К примеру
    Программа ->
    Подпрограмма в которой есть переменная X
    Подпрограмма вызывает -> глобальный класс

    И вот из этого метода хочу считать то что было в вышестоящей подпрограмме в переменной Х и изменить его

    Возможно?

      1. Так только к глобальным переменным.
        А что насчет локальных?

        Если в отладчике выйти на уровень выше то все переменные доступны, значит наверняка есть способ к ним получить доступ

    1. Бейлак, привет!

      Скажи, какой смысл в этом финте ушами? Динамический доступ к глобальным переменным стараются не использовать по ряду причин (Михаил ранее привел цитату). А уж к локальным — ни разу в практике не встречал такой необходимости.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *