Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

Problem with attaching web browser remote debugger to app running in docker container

未關閉
#901 1 則留言 0 個 reaction 已指派 1 人 在 GitHub 檢視

@ono-max 已經在處理了。

開始於 2023年3月7日。

評估

這個 Issue 還沒有評估資料。

描述

Your environment

  • ruby -v: 3.2.1
  • rdbg -v: 1.7.1

Describe the bug

Hit problem with remote debugger with web browser

Error:

web-1  | ["DEBUGGER Exception: /usr/local/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/thread_client.rb:1233",
web-1  |  #<NoMethodError: undefined method `[]=' for nil:NilClass>,
web-1  |  ["/usr/local/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/server_cdp.rb:1283:in `block in variable'",
web-1  |   "/usr/local/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/server_cdp.rb:1281:in `each'",
web-1  |   "/usr/local/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/server_cdp.rb:1281:in `each_with_index'",
web-1  |   "/usr/local/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/server_cdp.rb:1281:in `variable'",
web-1  |   "/usr/local/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/server_cdp.rb:1097:in `block in process_cdp'",
web-1  |   "/usr/local/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/server_cdp.rb:1095:in `map'",
web-1  |   "/usr/local/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/server_cdp.rb:1095:in `process_cdp'",
web-1  |   "/usr/local/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/thread_client.rb:1224:in `wait_next_action_'",
web-1  |   "/usr/local/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/thread_client.rb:856:in `wait_next_action'",
web-1  |   "/usr/local/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/thread_client.rb:320:in `suspend'",
web-1  |   "/usr/local/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/thread_client.rb:358:in `block in step_tp'",

I'm running app in docker container (running app in localhost is not an option), thus I setup host/port and path setup so that I was able to attach debugger from web browser to container. When stepping through code it however, it gets often this error, which then breaks app & debugger connection.

Also paths seem to pose a bit problem, which I worker around via creating symlink in host machine filesystem, matching directory structure inside container, and mounted source directory from that symlink into web browser, instead of actual directory in file system. Reason being that web browser seems to send absolute path to file system when setting break point, while inside container sources are at "/app" (in localhost "/home/myaccount/....")

To Reproduce

  1. have app running in container
  2. do necessary 0.0.0.0:5555 debug port redirection from docker compose to localhost (port 5555 forwarded to host os side)
  3. launch app
  4. connect web browser debugger to app running in container
  5. set some breakpoint
  6. do relecant things to trigger breakpoint
  7. step through code
    => that "undefined method `[]=' for nil:NilClass" will happen sooner or later

Expected behavior

Not to have internal error in debugger

Additional context
"app stack" to understand debugging context, in case it affects problem.

image

主要語言
Ruby
星號
1.3k
分支
146
PR 合併指標
30 天內沒有已合併 PR

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

ruby/debug 的其他 Issue

查看 ruby/debug 的全部 Issue

相似的 Issue

更多 Ruby Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。