A Short Tour to JDB on xDIVA (zh-tw)
當你順利地安裝完xDIVA 後,首先我們必須確認我們是否能成功地呼叫出我們DIVA的虛擬視窗,你可以開啟 開始->所有程式-> xDIVA 的方式來執行xDIVA。
如果你的OgreSDK 是安裝正確的話,這時我們的DIVA 視窗將會顯示在螢幕上。
現在我們利用一個範例,照著下面的步驟來輕鬆地學習操作DIVA這個Debugger工具。
- 開啟 eclipse
- 在左上角的 menu bar 點擊File
- 選擇 "Import…"
- 開啟你安裝路徑中的Examples 資料夾
- 選擇 ubvm 這個專案
這時ubvm這個專案就會被我們載入到Eclipse裡面,讓我們繼續按照下面的步驟。
- 設置中斷點在line 15的位置(在左邊的位置點一下,會出現藍色點)
- 點選工具列的” Debug ubvm” 圖示
這時我們就可以看到如下面顯示的視窗
這表示eclipse 已經在幫你做debug的事情,並且執行到第15行時停下來,這時你可以按下VISUALIZE這個按鈕(在menu bar)來視覺化你所想觀察的變數。
這時Eclipse會跳出如下圖的視窗
在這個範例,我們想要視覺化ivar這個變數,在我們輸入ivar後,按下Confirm 這個按鈕,這時我們的diva會跳出一個視窗,我們叫她Mapping Dialog,你可以利用上面的工具來完成你想要的視覺化方式。
在視窗的左邊,是我們想要視覺化化的物件(也就是ivar),而視窗上面的工具包含了許多基本的視覺化原件,這些基本元件我們又叫mapping node,他們有各自不同類型的功能。
每個mapping node 可以比喻成呈現實中的幾何圖形,它可以將我們的變數轉為一個三維的圖形,當然我們可以對這個圖形進行許多的設定,不論是對其右鍵選擇或是在視窗的右邊填選。
而中間的視窗是我們放置與編製mapping node的區域,而每個mapping node都有參數的輸入點,我們可以藉由連結我們變數與mapping node間的關係與輸入值,來完成視覺化的設定。
在我們這題的範例中,我們先點選 CUBE_UBVM這個mapping node 這時可以看到它以綠色的視窗成現在我們畫面中間的編輯視窗內。 在這個圖中,我們可以看到我們mapping node 左邊的凹槽是我們的輸入端而右邊是輸出端,而我們的輸入端可以由我們左邊變數突起的點進行連結或者是由其他mapping node的輸出端連結,當然每一個輸出端都可以進行一對多的連結,多個mapping node間也可以互相連結,所以最後可能會像是一個mapping tree一樣的展開。
在我們圖中,_vm_name 這個輸入端是給這個物件它的名子,在我們視覺化後方便我們知道這個圖形是哪個變數,而_vm_clickmsg這個輸入端是指當我們對這個物件滑鼠左鍵時或顯示出來的值,可是在這圖中沒有發現修改這cube大小的參數,這時候點一下綠色的視窗(也就是選取他),在我們畫面的右邊有三個選項Attributes, Input, Output,我們點選Input 然後把下面的size 勾起來,這時候就可以看到我們的cube 多出了三個欄位x軸大小,y軸大小,z軸大小。
在diva當中,預設是會把下列參數給隱藏起來的,所以當有需要的時候再把他們給呼叫出來。
x-axis size, y-axis size, z axis,
x-axis scale, y-axis scale, z-axis scale,
x-axis position, y-axis position, z-axis position,
red in RGB, green in RGB, blue in RGB,
x-axis rotation, y-axis rotation, z-axis rotation,
quaternion, transparency
假設我們想要對這個CUBE 視覺化後的x軸大小會隨著ivar值 大小而改變,首先我們連結ivar到 _vm_name ,這代表這UBVM的名子設定為ivar,接著再將 ivar 連結到_vm_clickmsg,這時我們的畫面會有兩條連線了,最後再將ivar連結到我們的_vm_sizex,也就是設定這個物件x軸長度的大小是ivar這個值的大小。 當完成連結後,按下視窗右下角的Apply, 這時候我們就可以在DIVA的視窗裡面看得一個3D的CUBE ,因為我們有連接 _vm_name 這個輸入點,這時我們可以看到CUBE上面顯示它的名子是 ivar ,而內建的cube的大小是(100,100,100)。
但在我們這個範例裡,我們有設定_vm_sizex 為ivar ,也就是50,所以x軸的長度是50。 在DIVA這個視窗裡,我們可以看到左邊有一排工具,左上角的工具分別為 Continue、Step Over、Step Into ,你們可以使用它們來繼續往下執行程式或者是用Eclipse裡面的繼續執行鍵,每按一次,程式就會執行到下一個中斷點的位置,當然diva所顯示的東西也就會隨著執行到中斷點的狀態跟著改變。
在此題範例中,我們接著在eclipse的line 16加入中斷點,並且按下繼續執行想看看ubvm接著執行到line 16時diva所產生的改變。
這時可以看到ubvm執行到第16行停下來
DIVA這時候的畫面如下
這時可以看到我們的ivar值變成了100,所以diva所顯示的的值也跟著變為100,而長度也變為了100的大小。
這裡有一些按建設定
• W – 往前移動 • S – 往後移動 • A – 往左移動 • D – 往右移動 • R – 往上移動 • F – 往下移動 • O – 重設視窗回到中間 • Z – 往左選轉 • X – 往右選轉
當然你也可以就由按著滑鼠的左鍵來托移畫面