2011-12-13 119 views
2

我是vala/clutter開發的新手,並試圖設置Nemiver來調試我的vala/clutter程序。我正在使用monodevelop來編輯和構建vala網頁中的混亂演示示例。我通過編譯器--pkg clutter-1.0 -g --save-temps選項。我安裝了clutter-debuginfo軟件包(我在Fedora 16上)。該程序在monodevelop內運行良好。在Nemiver中調試vala/clutter程序時缺少調試信息

從Nemiver運行可執行文件時,我可以查看某些局部變量,如下面代碼中的整數循環計數器,但我看不到雜波對象屬性(如r.width值)的值。儘管「r」在上下文選項卡中作爲指向clutterRectangle的類型指針列出,但它旁邊沒有+符號來展開並查看width屬性。同樣,當我在代碼中突出顯示r.width並右鍵單擊並選擇檢查變量時,我不會收到任何信息。

原諒我的無知,但有人知道我必須做什麼才能做到這一點?

在所有的任何信息表示讚賞

日Thnx

private void create_rectangles() { 
    for (int i = 0; i < colors.length; i++) {  // Nemiver shows the value of int i correctly 
      var r = new Rectangle(); 

      r.width = r.height = stage.height/colors.length; // can't get a value for r.width 
      r.color = Color.from_string (colors[i]); 
      r.anchor_gravity = Gravity.CENTER; // *********** My Break Point is set here in Nemiver 
      r.y = i * r.height + r.height/2; 

      stage.add_actor (r); 

      rectangles[i] = r; 
    } 
} 

回答

2

GDB不VALA語法工作。必須使用C查詢。大概寬度和高度是屬性,所以你必須做這樣的事情:

clutter_actor_get_width(r);

也出於調試目的,最好傳遞-X -O0以便gcc關閉優化。

+0

好的,我將它輸入到我的直接窗口中,並獲得了一個值。感謝那。那些交換機是否會傳遞給valac? – user1094779

+0

是的。 '-X'標誌告訴valac將後面的內容傳遞給GCC,'-O0'告訴GCC不要優化。 – ssokolow