Visualize pointers by UBRVM (Ultimate Basic Reference VM) (zh-tw)

From OO Lab
Jump to: navigation, search

Reference VM
C,C + +中的Pointers和Java中的references是不可缺的程式語言結構。多數的程式工程師已習慣展開debugger中的watch window來察看變數。當Pointer用於程式中時,工程師們常會想在兩物件建立關係連結。將此連結可視化是非常實用的,且在大多數情況下,是不可或缺的。
Pointer所描述的二元關係,包含物件或是陣列,可使用RelationVM。
然而,可視化一個二元關係,xDIVA提供了一種VM叫做Ultimate Basic Reference VM (UBRVM)。他們是設計來處理二元關係,我們是用reference VM來指向這類型的VM。
xDiva提供以下幾種UBRVMs:

  • ubrvm_laser
  • ubrvm_line
  • ubrvm_orbit


ubrvm_laser 讓我們透過一些例子來熟悉 reference VM。打開bt.java,將中斷點設在程式結束的位置。

設定root為欲可視化的變數。
Eclipse VisualizeRoot.png
要使用 UBRVM ,你需要連結pointer型態的變數到 port pointer,接著你需要選擇一種VM 來當二元關係的來源VM。
XDIVA MappingRoot.JPG
在這個範例中,我們使用圓環VM(TORUS_UBVM)的來當我們的來源VM(root)。如果我們點選這個圓環,他會發射LASER光線到目標VM(root pointer指向的物件),目標VM會在指標展開時被建立。
XDIVA TorusRoot.JPG
在前面的教學中,我們常常使用到ball_laser VM,這個referece VM使用 Sphere_UBVM 當作來源VM,然後與laser_ubvm包在一起存於 Composer類別供快速使用。

Orbit_ubrvm
orbit_ubrvm 這個reference VM非常有趣,舉例來說我們建了兩個VM-vm1和vm2,當 vm1被點選後, Ogrehead (the mascot of Ogre) 會出現在vm2旁邊並環繞著旋轉。
下圖為使用後出現的畫面:
Ogrehead.jpg

Personal tools