2011-12-13 65 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