2

我是 vala/clutter 开发的新手,并试图设置 Nemiver 来调试我的 vala/clutter 程序。我正在使用 monodevelop 来编辑和构建来自 vala 网页的 clutter-demo 示例。我正在向编译器传递 --pkg clutter-1.0 -g --save-temps 选项。我安装了 clutter-debuginfo 包(我在 Fedora 16 上)。该程序在 monodevelop 中运行良好。

从 Nemiver 运行可执行文件时,我可以在下面的代码中查看某些局部变量,例如整数循环计数器,但我看不到杂乱对象属性的值,例如 r.width 值。尽管“r”在上下文选项卡中作为指向clutterRectangle 的类型指针列出,但它旁边没有+ 号来展开并查看width 属性。同样,当我在代码中突出显示 r.width 并右键单击并选择检查变量时,我没有得到任何信息。

原谅我的无知,但有谁知道我必须做什么才能完成这项工作?

任何信息都值得赞赏

谢谢

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;
    }
}
4

1 回答 1

2

GDB 不适用于 vala 语法。必须使用 C 查询。可能宽度和高度是属性,因此您必须执行以下操作:

clutter_actor_get_width(r);

同样出于调试目的,最好传递 -X -O0 以便 gcc 关闭优化。

于 2011-12-15T11:22:11.470 回答