Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 Контент вільний від AI. Цей пост на 100% написаний людиною, як і все на моєму блозі. Насолоджуйтесь!

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)… Працює бездоганно!