gpt4 book ai didi

c++ - 调试来自同一代码库的运行时差异

转载 作者:行者123 更新时间:2023-11-28 00:05:38 24 4
gpt4 key购买 nike

我目前正在使用 VEINS库和模拟包做一些实验。因为它们的运行时间很长,所以我尝试使用大学集群服务器(KITE 2.0/RHEL6.6/Lustre 2.5.29.ddnpf3)——但是,我现在遇到了几个不同的运行时错误,与在我的本地机器(Fedora 23)上运行完美的相同代码。我正在寻找一种轻松调试此问题的方法。我怀疑原因在于不同的 gcc 版本,或者可能是我无法远程更改的其他系统级库(但我不确定)。我确定 OMNeT++ 版本是一样的; VEINS 库是我提供的,本地和远程是一样的。

我遇到的问题的一个例子是 discussed here ,我最终修复了 like this (据我所知,这两个版本具有相同的语义...DimensionSet 扩展了 std::setDimensionSet::timeFreqDomain是一个 static const,在修复中用 (Dimension::time, Dimension::frequency) 初始化。

查找原因的好方法是什么?有没有一种简单的方法可以在这些机器之间“交叉编译”,或者有什么方法可以区分二进制文件以查找原因?我在哪里可以找到处理此类问题的常用方法?

最佳答案

我可能已经将错误追踪到一个 static initialization order fiasco 的例子: MiXiM 的 Dimension::time 是一个静态成员,所以它不应该被用来初始化其他静态成员。不幸的是,这正是 MiXiM(以及 Veins)所做的,导致了此类崩溃。

我已经推送了commit 7807f47c (Veins 4.4 的一部分),它摆脱了几乎所有静态成员,因此整个框架使用起来应该更安全。

关于c++ - 调试来自同一代码库的运行时差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35803072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com