调试会话不适用于调试 gem

问题描述 投票:0回答:2

我正在制作一个个人开发的应用程序。
我尝试使用从 Rails 7 开始成为标准的 debug gem 进行调试,但是即使我进入调试会话,(rdbg) 也无法顺利工作。我不知道是什么原因。如果有任何建议请告诉我。
我的 Gemfile 如下。

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '3.1.2'

gem 'rails', '~> 7.0.2', '>= 7.0.2.4'
gem 'sprockets-rails'
gem 'pg'
gem 'puma'
gem 'importmap-rails'
gem 'turbo-rails'
gem 'stimulus-rails'
gem 'tailwindcss-rails'
gem 'jbuilder'
gem 'redis'
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]
gem 'bootsnap', require: false

gem 'sorcery'
gem 'rails-i18n'
gem 'config'
gem 'simple_form'
gem 'enum'
gem 'enum_help'
gem 'draper'
gem 'redis-actionpack'
gem 'carrierwave'
gem 'validates_email_format_of'

group :development, :test do
  gem 'annotate'
  gem 'capybara'
  gem 'debug', platforms: %i[mri mingw x64_mingw]
  gem 'factory_bot_rails'
  gem 'faker'
  gem 'launchy'
  gem 'rails-controller-testing'
  gem 'rspec-rails'
  gem 'shoulda-matchers'
  gem 'webdrivers'
end

group :development do
  gem 'web-console'
  gem 'better_errors'
  gem 'binding_of_caller'
  gem 'solargraph'
  gem 'letter_opener_web'
end

我已将“调试器”放入控制器中并进入调试会话,终端控制台将是以下屏幕。

我的理解是应该提示(rdbg)并等待调试命令。
然而,无论我等多久,(rdbg)都没有出现。
当我按n(下一个)命令时没有任何反应。 (有时确实有效,但要花很多时间,而且完全没用。)
你能给我一些建议吗?

ruby-on-rails debugging rubygems ruby-on-rails-7 rails7
2个回答
0
投票

FVVID的评论来看,原因似乎是服务器是用“bin/dev”命令启动的。

我的环境是“importmap + tailwindcss”。
“tailwindcss”在调试期间不会更新,因此我现在可以通过使用“rails s”命令而不是“bin/dev”启动服务器来使用调试 gem。

感谢FVVID。


0
投票

我是 Mac 用户,您需要根据您的平台调整此建议/学习。

如果关闭

foreman
不是问题,那么这就是我所做的;使用
overmind
作为替代品:

  1. 将您的
    bin/dev
    文件更改为:
if ! command -v overmind &> /dev/null
  then
    echo "Installing overmind via homebrew..."
    brew install overmind 
  fi
  
  export PORT="${PORT:-3000}"
  overmind start -f Procfile.dev

foreman
相同,但您现在使用的是
overmind
。因此,像平常一样在终端中运行
bin/dev

  1. 在终端中运行
    overmind
    时,打开另一个终端并使用以下命令“连接”到 overmind
    web
    进程:
    overmind connect web
    。它只会获取 Rails 7.x 中默认声明的
    web
    服务,并让您以过去习惯的方式访问调试过程。
    
    
  2. 基于我的 Procfile.dev 示例:

Procfile.dev

值得注意的是:
如果您发现聚合日志中的
web: bin/rails server # <== see how the dots connect: overmind connect **web**` js: bun run build --watch css: bun run build:css --watch

噪音有点多,那么这客观上会更好,这样您就可以只单独查看网络日志。

为有兴趣的人提供一些额外资源:

    Rails Procfile 如何与 Foreman、Overwind + hive 配合使用
  • 另一个:Rails Procfile 如何与 Foreman、Overwind + hive 配合使用
  • 超乎想象
© www.soinside.com 2019 - 2024. All rights reserved.