VSCode에서 Rails 항목 디버깅 허용
이 문장
VScode와gem의 ruby-debug-ide·debase를 사용하여 디버깅을 한다는 보도가 많지만 원격 디버깅 프로그램을 사용하는 경우 환경 주위 등 시기별로 실행하기 어려워 경험적으로 많기 때문에 참고하시면 됩니다.
프로젝트 이름
소스 코드
바로 MacOS에서 Rails를 시작할 때.
이 소스는 Docker에서 시작할 때의 디버깅을 검증합니다.
프로젝트 구성
나중에 데이터베이스와 같은 중간부품과 다른 응용 프로그램을 쉽게 추가할 수 있도록 Rails를 위해 디렉터리를 끊었습니다.
VScode 디버그 설정(launch.json)
.vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Local - Listen for rdebug-ide",
"type": "Ruby",
"request": "attach",
"cwd": "${workspaceRoot}/rails",
"remoteHost": "0.0.0.0",
"remotePort": "1234",
"remoteWorkspaceRoot": "${workspaceRoot}/rails",
"useBundler": true
},
{
"name": "Local Docker - Listen for rdebug-ide",
"type": "Ruby",
"request": "attach",
"cwd": "${workspaceRoot}/rails",
"remoteHost": "0.0.0.0",
"remotePort": "1234",
"remoteWorkspaceRoot": "/rails",
"useBundler": true
}
]
}
이것은 Docker를 사용하지 않고 Rails를 직접 시작할 때의 설정입니다.
rails 디렉터리로 이동한 다음bundle install을 실행하고, 디버깅에 사용할 rails 시작 명령을 실행하고, VScode의 디버깅을 실행할 수 있습니다.
$ cd rails
$ bundle install --path vendor/bundle
$ bundle exec rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- bin/rails s
이것은 Docker를 사용하여 Rails Device를 설정하는 것입니다.
remoteWorkspaceRoot은 컨테이너가 있는 디렉토리 계층 구조입니다.
다음은 디바이스를 위한 Docker를 시작하라는 명령으로, VScode를 시작할 수 있는 디바이스입니다.
$ docker-compose -f docker-compose.debug.yml up
docker-compose.debug.yml 및 docker-compose.yml 두 파일이 다릅니다.Rails 시작 명령에 rdebug-ide 차이가 있는지 확인
디버그를 열 때 사용하는 포트의 차이만 있습니다.
Ruby 2.5.3 Rails 5.2.1 디버깅에 푹 빠진 곳
아래 URL에는 현상과 해결 방법이 적혀 있습니다.
해설을 너무 많이 봐도 이해가 안 돼요.
Ruby2.5 시리즈의 trace 명령을 제거하여 5-10% 의 고속화
gem의 bootsnap을 통해 Rails 시작 시 최적화
디버깅이 잘 안 되는 경우가 있는 것 같습니다.
일단 rails/config/boot.rb
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
require 'bundler/setup' # Set up gems listed in the Gemfile.
# require 'bootsnap/setup' # Speed up boot time by caching expensive operations.
unless ( (('2.5.0'..'2.5.3').include? RUBY_VERSION) && defined?(Debugger) )
# see: https://superuser.com/questions/1359747/is-it-possible-to-get-visual-studio-code-ide-debugging-of-apps-on-rails-5-2-to-w
require 'bootsnap/setup' # Speed up boot time by caching expensive operations.
end
이렇게 디버깅할 때bootsnap을 사용하지 않으면 디버깅할 수 있습니다.
Reference
이 문제에 관하여(VSCode에서 Rails 항목 디버깅 허용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/igara/items/0c19b557e3d7cbc41233텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)