我试图在目标平台上使用gdb调试c ++代码,该平台与使用Yocto创建的操作系统一起运行,并将结果与我的笔记本电脑进行比较。 所有包都有默认的编译标志(没有O3左右)
设置:
EXTRA_OECMAKE = " -DCMAKE_BUILD_TYPE=Debug"
在local.conf中调用Yocto标志:
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INHIBIT_PACKAGE_STRIP = "1"
DEBUG_BUILD = "1"
EXTRA_IMAGE_FEATURES_append = " dbg-pkgs"
启动gdb时加载调试符号。
在我的笔记本电脑上,使用info locals
,我可以看到变量及其值。在我的目标平台上,我有时会得到值,但也有符号:
_M_impl
_M_key_compare
_M_string_length
有时是其他类型的输出:
rotation_ = {<Eigen::RotationBase<Eigen::Rotation2D<double>, 2>> = {<No data fields>}
是否还需要在Yocto上进行其他调试才能启用调试?
编辑:我尝试了一个最小的C ++示例,似乎std库没有调试符号。