2009年3月12日 星期四

Remote Debug

遇過這樣的狀況嗎?

『我們的程式,在自己的電腦上執行,一切正常,但是交到別人手上執行,卻常常出問題,更不要說是交給老闆測試了,老闆的電腦特別奇怪,好好的程式交給老闆就一定會出事。』

這種時候,就是放61點天賦大絕的時候了。

這個大絕叫做『遠端除錯』,Remote Debug。

概念是這樣,我們在近端--也就是我們自己的電腦--用VC或是其他的編譯工具進行除錯,程式則是在遠端電腦(也就是老闆的電腦)上執行,Trace/Debug的做法,與我們在自己的電腦上除錯是相同的,所不同的是,我們控制的是老闆電腦上的程式。

用這種方式除錯,遠端電腦上是不需要安裝任何的編譯工具的,只需要兩種東西。

一個是程式的執行檔和相關的資料檔案,另外一個就是稱做Remote Debug Server或是Remote Debug Monitor的程式。這個Remote Debug Monitor是一個很小的程式,通常放在VC或是編譯工具的安裝光碟中,請拿出來安裝在遠端電腦上。

然後,在遠端電腦先將remote debug server跑起來,等待近端的連線。

接著我們在近端電腦打開程式專案,做一些設定--每一種編譯工具的設定方式都不同,甚至不同版本的VC++都有不同的設置方式--之後,開始debug run。這時候,遠端電腦上的執行檔就會被跑起來,而所有的debug output訊息,會顯示在近端的編譯工具裡。同時,也可以設定break point,去trace 遠端電腦上的程式流程。

這樣,我們就能夠很快的發現bug,解決bug,也就不會在老闆面前滅團了。

2 則留言:

半路 提到...

要 61 點天賦... 我目前還沒學會,難怪老是滅團啊。 Orz

林佳男 (Germos Onner) 提到...

我也是程式人員, 除錯有時候要心裡默唸...拜託拜託拜託...有時候很神奇的就可以把蟲殺死~~

http://germos.net