【问题标题】:Yocto - generate debug symbol of all the included packagesYocto - 生成所有包含的包的调试符号
【发布时间】:2020-11-06 13:08:08
【问题描述】:

我正在尝试构建调试符号,以便在需要时与 gdb 一起使用。要构建调试符号,请在目标图像 target-image.inc 文件中添加以下内容。

IMAGE_GEN_DEBUGFS = "1"                                                         
IMAGE_FSTYPES_DEBUGFS = "tar.bz2"

构建成功后,它会生成“target-image-dbg.rootfs.tar.bz2”,但这包括“.debug”下的很少的libs/bins。

以下是我的 yocto 分布

DISTRO = "poky"                                                                  
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"                            
DISTRO_VERSION = "2.0.3"                                                         
DISTRO_CODENAME = "jethro"

我想为我的 rootfs 中包含的所有包构建 dbg 符号。有人可以指出,缺少什么吗?

【问题讨论】:

    标签: build yocto bitbake debug-symbols openembedded


    【解决方案1】:

    您缺少包含dbg-pkgs,对于这种情况是强制性的。

    尝试在您的conf/local.conf 中配置这种方式。

    INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
    INHIBIT_PACKAGE_STRIP = "1"
    DEBUG_BUILD = "1"
    EXTRA_IMAGE_FEATURES_append = " dbg-pkgs"
    

    【讨论】:

    • 为什么要设置 INHIBIT_PACKAGE_DEBUG_SPLIT/INHIBIT_PACKAGE_STRIP? “OpenEmbedded 构建系统会剥离二进制文件并将调试符号放入 ${PN}-dbg。因此,通常在计划调试时不应设置 INHIBIT_PACKAGE_STRIP”
    • 这需要确保在构建过程中,调试符号不会被 Yocto 从它打包的二进制文件中剥离。将符号和调试信息文件作为单独的文件添加到文件系统中,而不是将它们嵌入到可执行文件中。
    • @CleitonBueno - 尝试了上述建议,但输出是相同的。我看到的是 target-image-dbg.rootfs.tar.bz2,但它的总大小为 20 MB,但我的实际 rootfs 大小约为 150MB。在构建过程中,我在 do_package_qa 期间看到“tmp-glibc/work/arm-oe-linux-gnueabi/my_package/1.0-r0.release/packages-split/my_package-dbg/.debug/my_package”下。我需要它成为 dbg-rootfs.tar.bz2 的一部分。但它被删除了。建议?
    • @SD.,您能否附上您的local.conf 的完整内容并分享链接?
    • @CleitonBueno - 请参阅paste.ubuntu.com/p/BDxxDDMHqJ
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2016-02-18
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2020-05-04
    相关资源
    最近更新 更多