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