Используя Rails4.1.1 и Ruby 2.0.0, вывод терминала binding.pry иногда пуст

Я пытаюсь отладить приложение Rails 4.1.1 с помощью binding.pry но чаще всего, когда выполнение прерывается, и я пытаюсь показать значения моих переменных, он просто возвращает пустую строку или ничего (трудно различить).

Но в других случаях это выплевывает ценности. Я заметил, что более вероятно выпустить значение переменной, если эта переменная содержит очень длинный фрагмент текста или JSON. В противном случае это просто игнорируется.

Точно так же пытаясь сделать другие основные binding.pry вещи как ! сбросить входной буфер или hist --tail 5 и т. д. просто игнорируются.

Rails запускается через foreman и работает в thin,

Я предполагаю, что это какая-то проблема с выходной синхронизацией, но это всего лишь предположение.

Испытывали ли вы это, и если да, то как вы справились с этим?

1 ответ

Решение

Ты используешь pry-debugger? Если так, то с Ruby 2+ вы можете перейти на pry-byebug. Есть какая-то linecache несовместимость между Ruby 1.9 и 2.x, и byebug исправляет это.

Другие вопросы по тегам