Как я могу отладить динамически определенный метод с Ruby? (метод, созданный в рамках сессии repl) - PullRequest
0 голосов
/ 18 апреля 2019

Возможно ли отладить динамически определенный метод в Ruby?Если да, то как мне этого добиться?

Итак, я открыл новый сеанс Pry и сначала попробовал его так:

require "byebug"

def hello(x)
  byebug
  x += 1
  puts x
end

hello(5)

Он выкрикнул мне «*** Нет исходного файла»за (подглядывать) ".Мне все еще удавалось пройти по коду, но я не мог видеть источник.

Тогда я попытался сделать это так:

def hello(x)
  binding.pry
  x += 1
  puts x
end

hello(5)

А теперь все наоборот:Я могу видеть исходный код, но не могу пошагово пройти по коду (когда я набираю «шаг», он выкрикивает мне «NameError: неопределенная локальная переменная или метод« step »для main: Object»).Похоже, у Pry действительно есть необходимый источник, но, к сожалению, отладчик не работает: (

Мне удалось сделать это в Python repl с использованием IPython (хотя он не работал в стандартном Python repl):

def hello(x):
    breakpoint()
    x += 1
    print(x)

hello(5)

Я бы хотел добиться того же в Ruby

...