2017-06-07 44 views
0

在VSCode 1.12.2/Linux Mint上使用--pkg libval​​a-0.36开发Vala(libval​​a)程序18.运行F5调试会话,我可以设置断点并查看局部变量值。但我似乎无法让Vala对象显示类数据而不是地址。例如:使用libval​​a-0.36调试VSCode需要调试符号?

foreach (Vala.SourceFile src in context.get_source_files()) { 
        var source = find_source_file (src.filename) ; 

在调试窗口(和鼠标悬停)显示的src:对象@#* 0x660aa0代替Vala.SourceFile类对象。我猜测没有加载libval​​a符号表? “apt搜索”显示安装了libval​​a-0.36-0-dbg和libval​​a-0.36-dev软件包,但不知道如何使用它们。

使用谷歌搜索,我找到了“valac-dbgsym”的引用。所以我试着...

sudo apt-get install valac-dbgsym 
E: Unable to locate package valac-dbgsym 

感谢您的帮助/洞察我做错了什么。我的目标是运行调试并显示Vala。 Debug窗口中的类对象数据。 感谢您的帮助!

[email protected] ~ $ sudo apt search libvala 
p libvala-0.30-0     - C# like language for the GObject system - 
p libvala-0.30-0:i386    - C# like language for the GObject system - 
p libvala-0.30-0-dbg    - C# like language for the GObject system - 
p libvala-0.30-0-dbg:i386   - C# like language for the GObject system - 
p libvala-0.30-dev    - C# like language for the GObject system - 
p libvala-0.30-dev:i386   - C# like language for the GObject system - 
p libvala-0.34-0     - C# like language for the GObject system - 
p libvala-0.34-0:i386    - C# like language for the GObject system - 
p libvala-0.34-0-dbg    - C# like language for the GObject system - 
p libvala-0.34-0-dbg:i386   - C# like language for the GObject system - 
p libvala-0.34-dev    - C# like language for the GObject system - 
p libvala-0.34-dev:i386   - C# like language for the GObject system - 
i libvala-0.36-0     - C# like language for the GObject system - 
p libvala-0.36-0:i386    - C# like language for the GObject system - 
i libvala-0.36-0-dbg    - C# like language for the GObject system - 
p libvala-0.36-0-dbg:i386   - C# like language for the GObject system - 
i libvala-0.36-dev    - C# like language for the GObject system - 
p libvala-0.36-dev:i386   - C# like language for the GObject system - 
v libvala-dev      -           
v libvala-dev:i386    -           
p libvaladoc-data     - API documentation generator for vala (data 
v libvaladoc-data:i386   -           
p libvaladoc-dev     - API documentation generator for vala (deve 
p libvaladoc-dev:i386    - API documentation generator for vala (deve 
p libvaladoc3      - API documentation generator for vala (libr 
p libvaladoc3:i386    - API documentation generator for vala (libr 

=========================================================================== 
----------building CSharp2Vala.exe 
=========================================================================== 
valac -X -I/media/george/SharedData/Projects/Vala/vala-extra-vapis/ --verbose --vapidir=/media/george/SharedData/P 
rojects/Vala/osslibs/ --girdir=/media/george/SharedData/Projects/Vala/osslibs/ --pkg gio-2.0 --define=DEBUG --save 
-temps -g -X -w \ 
     --pkg libvala-0.36 \ 
     --pkg gee-0.8 \ 
     -X -DGETTEXT_PACKAGE="..." \ 
     -X -I/media/george/SharedData/Projects/Vala/CSharp2Vala/Echo-src/lib \ 
     -X /media/george/SharedData/Projects/Vala/CSharp2Vala/Echo-src/lib/libecho.so \ 
     /media/george/SharedData/Projects/Vala/CSharp2Vala/Echo-src/lib/libecho.vapi \ 
     /media/george/SharedData/Projects/Vala/CSharp2Vala/CSharp2Vala.vala \  -o /media/george/SharedData/Projects/Vala/CSharp2Vala/CSharp2Vala.exe 
Loaded package `/usr/share/vala-0.36/vapi/glib-2.0.vapi' 
Loaded package `/usr/share/vala-0.36/vapi/gobject-2.0.vapi' 
Loaded package `/usr/share/vala-0.36/vapi/gio-2.0.vapi' 
Loaded package `/usr/share/vala-0.36/vapi/libvala-0.36.vapi' 
Loaded package `/usr/share/vala/vapi/gee-0.8.vapi' 

cc -g -o '/media/george/SharedData/Projects/Vala/CSharp2Vala/CSharp2Vala.exe' '/media/george/SharedData/Projects/V 
    ala/CSharp2Vala/CSharp2Vala.c' -pthread -I/usr/include/vala-0.36 -I/usr/include/gee-0.8 -I/usr/include/glib-2.0 -I 
    /usr/lib/x86_64-linux-gnu/glib-2.0/include -lgio-2.0 -lvala-0.36 -lgee-0.8 -lgobject-2.0 -lglib-2.0 '-I/media/geor 
    ge/SharedData/Projects/Vala/vala-extra-vapis/' '-w' '-DGETTEXT_PACKAGE=...' '-I/media/george/SharedData/Projects/V 
    ala/CSharp2Vala/Echo-src/lib' '/media/george/SharedData/Projects/Vala/CSharp2Vala/Echo-src/lib/libecho.so' 
    Compilation succeeded - 3 warning(s) 

回答

0

你应该知道,libvala是客户端,如valacvapigen使用的内部API。这两个客户端都是在主要来源中开发的,因此与libvala API保持同步。 API的变化不大,但是例如,即将发布的0.38版本commit c9aa47会从API中删除CCode和Codegen符号,使其仅适用于libvala。另外commit e1b399将为Report.set_colors添加一个可选参数。但是多年来,许多IDE工具已经开始直接使用libvala。因此,如果可以的话,务实的建议是避免使用libvala API,如果必要的话尽可能少地使用API​​。通常使用现有工具使用的API的一部分。

如果您正在寻求开发libvala本身,那么当您配置Autotools构建时,您可以使用--enable-coverage构建Vala。这将在libvala中为Vala源文件添加行号,因此在回溯中显示Vala源和行号。您还将需要安装GLib调试符号。我认为这是在Ubuntu中的​​。

如果您正在调试Vala程序。然后--debug开关valac将添加源文件和行号到最终的二进制文件。当使用Meson build with Vala时,BTW --debug是默认值。 Vala中的类型系统基于GLib,因此也需要安装GLib2调试符号。

+0

使用--pkg libval​​a-0.36和--debug选项编译CSharp2Vala.exe一直有效。用dbg显示程序变量值不是问题。调试从libval​​a类没有libval​​a符号类型变量的值是问题。 我试着用--- pkg libval​​a-0.36-0-dev和--- pkg libval​​a-0.36-0-dbg编译,但是两个文件都缺少.vapi文件。通过一周来试图找到文档或示例来展示如何使用这些软件包进行编译是徒劳的。 –