使用 ruby?? debug gem時,我經常看到列印出以下輸出:
DEBUGGER: Attaching after process <pid1> fork to child process <pid2>
其中<pid1>是父行程 ID,如 12345,<pid2>是新分叉的子行程 ID,如 55555。
這里發生了什么?它與連接到像Spring或Zeus這樣的應用程式預加載器有什么關系嗎?
uj5u.com熱心網友回復:
它來自這里的代碼: https ://github.com/ruby/debug/blob/4af8c25140a7a672db852954b6a1733b3169b608/lib/debug/session.rb#L2129-L2162
發生的事情是您的主 Ruby 行程正在分叉一個新行程,它告訴您除錯器正在使用行程 id 附加到新創建的子行程<pid2>,因此它也可能因除錯事件而中斷。
就我而言,這是在呼叫visit <url>自動??化測驗時發生的,由于 Capybara Selenium 網路驅動程式,該測驗會創建一個新的子行程來啟動 Chrome 行程以呈現請求的 HTML。
默認情況下,ruby除錯 gem將附加到父行程和子行程。RUBY_DEBUG_FORK_MODE但是您可以使用環境變數覆寫以僅激活子級或父級的除錯器。
需要明確的是,它與 Spring 或 Zeus 等應用程式預加載器無關。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/446206.html
