Problem with attaching web browser remote debugger to app running in docker container
@ono-max 已经在做这个了。
开始于 2023年3月7日。
评估
这个 Issue 还没有评估数据。
描述
Your environment
ruby -v: 3.2.1rdbg -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
- have app running in container
- do necessary 0.0.0.0:5555 debug port redirection from docker compose to localhost (port 5555 forwarded to host os side)
- launch app
- connect web browser debugger to app running in container
- set some breakpoint
- do relecant things to trigger breakpoint
- 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.

- 主要语言
- Ruby
- 星标
- 1.3k
- 派生
- 146
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
ruby/debug 的其他 Issue
-
难度 3/5 1-2 天 新手友好度 68/100
-
Support exceptionOptions in setExceptionBreakpoints to catch arbitrary exception classes via DAP 未关闭
难度 4/5 3-5 天 新手友好度 55/100
-
难度 3/5 1-2 天 新手友好度 45/100
-
难度 4/5 3-5 天 新手友好度 52/100
-
难度 4/5 3-5 天 新手友好度 35/100
相似的 Issue
-
SyncEm always forwards a dummy block, so wrapped methods lose their no-block/Enumerator behavior 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
-
bug
难度 2/5 1-3 小时 新手友好度 75/100
-
bug
难度 2/5 1-3 小时 新手友好度 72/100
endoflife-date/endoflife.date#11086 ·
-
internal
难度 1/5 1 小时以内 新手友好度 88/100
Kong/developer.konghq.com#7322 ·
-
bug P2
难度 2/5 1-3 小时 新手友好度 88/100