7
set_trace_func我想實現以下目標:紅寶石 - 對派生進程
構建Ruby命令行實用程序,註冊一些set_trace_func事件,然後調用你通過什麼紅寶石可執行文件的參數給它(比如rspec
)。註冊的事件隨後傳遞給調用的命令。
的myutility
僞代碼:
set_trace_func() # Set some events here
exec(ARGV.join(' ')) # Execute argument passed
然後調用爲myutility rspec
。
我在這裏的目標是實際上任意命令(只要他們使用紅寶石墊片)的寄存器跟蹤點。
事情我已經嘗試:
exec
不行的,原因很明顯(這完全取代的過程)。- popen,system,反引號。這些開始一個獨立的過程。
我可以使用某種形式的IPC,但是假定控制了我用我的實用程序調用的命令。不是這種情況;我想接受任意的Ruby可執行參數。
這可能嗎?我沒有仔細看過的一件事就是drb,但這也妨礙了外界的爭論。
太棒了。我從命令行做ruby -r;不知道高管是否允許這樣做。這是正確的答案。一個快速跟進問題:我如何使用自己調用ruby的命令來完成這項工作?像rspec一樣。現在它通過一個錯誤說,它無法自然地找到rspec。 –
我記得 - rspec默認情況下不會調用ruby,但可以在drb上運行,也可以運行到'spring'-executable可執行文件 – Vasfed
,因爲'not found'錯誤 - 因爲沒有shell運行,您必須解決腳本完整路徑你自己(或通過傳遞給'which'在跑步者之前/之內) – Vasfed