我们在带有 A9 处理器的板上运行了这个传统的 Fortran 代码,我注意到使用 gdb 时出现了一些有趣的行为。当它处于全停止模式时,线程会继续运行,而当您将其切换到非停止模式时,gdb 似乎会崩溃。它也不能对 Fortran 代码中的符号进行观察点,不确定这是否是由于端口或二进制文件不属于同一工具链。但是,您可以将地址转换上的观察点设置为 C 类型。
在 rootfs 构建期间,我们已将 CodeSourcery 中的工具链二进制文件安装到 stage 目录,然后作为我们应用程序构建的一部分,Linaro 二进制文件会覆盖 targetroot 中的一些库。被覆盖的库是(一些?)应用程序唯一需要的库以及它所链接的库(libstdc++、libgfortran 和 libpthread)。
使用 CodeSourcery 或 Linaro 中的 gdb 似乎功能相同,尽管我没有尝试使用 Linaro 编译器设置硬件辅助观察点。两者似乎都没有配置为在记录的行为之外工作,除非我弄错了我所观察到的情况,否则这与它背道而驰。
那么这样好吗?我的意思是,它可以运行,但如果 gdb 至少有轻微损坏,我不知道其他实用程序会是什么。我想看看如何使用 Eclipse+Photran 和 TCF 代理,我正在研究 CodeSourcery 工具链的来源,这让我想到了 Yocto。我一直在家里尝试使用 Yocto 进行一些构建,我想知道是否值得我花时间引入具有所有这些设置的 VM,以尝试使用从头开始构建到 rootfs 中的工具链来运行我们的应用程序。
切换任何东西可能为时已晚,但如果我可以拥有一个更顺畅的工作环境,那么我可以在需要修复时将源重新投入我们当前的解决方案。