Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!11.03.2024
Debug на Ruby з VSCode
Воно працює!
Чесно, я останній раз впевнено дебажив ще на Borland Pascal та можливо ще C++ у Visual Studio (звичайному, не Code, а версії десь так 2010). Тоді програма була програмою: не було ані тестів, ані вебсерверів, ані “живого перезавантаження”. Потім в моєму житті трапився веб, а дебаг став рідкісним.
Ось, сьогодні вирішив замість звичного розсипання по коду puts
, зʼясувати, чи можна у 2024 дебажити Ruby з VSCode. Виявилося, що можна. Та й не дуже складно.
Нам потрібно буде доповнення VSCode rdbg Ruby Debugger. Воно працює разом з офіційним гемом debug, проте цей гем достатньо мати встановленим — включати в проєкт його не потрібно.
У цього доповнення є два режими роботи. Той, де воно запускає програму для дебагу, в мене не запускався — здається, через те, що мій термінал fish
. Інший режим — підключення до програми — спрацював. Його й рекомендую, бо, як на мене, такий підхід більш прозорий.
Отже, спочатку маємо запустити програму. Для того є команда rdbg
.
rdbg -O -c bundle exec rspec # ... і так далі
Важливо, що так можна запустити будь-яку програму на Ruby, хоч RSpec, хоч Rails, хоч просто власний скрипт. Я думаю, RSpec то найкращий вибір, бо там і контекст готовий, і легко запустити той модуль, який потрібний, в ізоляції.
Точки зупинки можна створювати засобами редактору, нічого в коді писати не треба. Потім стартуємо програму, запускаємо доповнення в режимі attach
, та насолоджуємося. Покрокове виконання, стеження за значеннями (тобто виконання довільних виразів в поточному контексті), точки зупинки з умовами (теж довільними виразами на Ruby)… Працює бездоганно!