【问题标题】:Missing debug info when debugging vala/clutter program in Nemiver在 Nemiver 中调试 vala/clutter 程序时缺少调试信息
【发布时间】:2011-12-13 00:20:10
【问题描述】:

我是 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 并右键单击并选择检查变量时,我没有得到任何信息。

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

感谢任何信息

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

【问题讨论】:

    标签: debugging vala clutter


    【解决方案1】:

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

    clutter_actor_get_width(r);

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

    【讨论】:

    • 好的,我在即时窗口中输入了它并返回了一个值。感谢那。那么这些开关是否要传递给 valac?
    • 是的。 -X 标志告诉 valac 将后面的内容传递给 GCC,-O0 告诉 GCC 不要优化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    相关资源
    最近更新 更多