Перечисление переменных в текущем и более высоких кадрах - PullRequest
4 голосов
/ 17 августа 2010

Я пытаюсь отладить скрипт с perl -d .... После того, как я остановлюсь там, где хочу, я хотел бы распечатать текущую среду и среду из более высоких кадров.

Я вижу стек через T. Теперь, если я попробую V, я получу список всего, что в значительной степени бесполезно, поскольку оно включает в себя такие вещи, как SO_BROADCAST константы и т. Д. Как я могу отфильтровать их и получить только локальные?

Как мне сделать то же самое для старших кадров?

Кроме того, как мне напечатать код вокруг строки более высокого стека? v / l сделать только текущий.

Ответы [ 2 ]

1 голос
/ 17 августа 2010

Вы также можете использовать модуль PadWalker , чтобы получить список лексических единиц в заданной области.Функции peek_my и peek_our возвращают хеш-значение переменных в области видимости в относительном кадре вызова (0 - текущий кадр, 1 - вызывающий кадр, ...)

1 голос
/ 17 августа 2010

Вы пробовали y [level], который показывает лексические (мои) переменные при текущем или более высоком значении (указанном level)?

При условии, что вы имеете в виду, что "получение только локальных",конечно.

...