【发布时间】:2014-02-03 13:59:28
【问题描述】:
这可能类似于这里的一个问题:What's the purpose of the UD2 opcode in the Linux kernel?,但是,我在 OSX 上而不是在 linux 上得到这个,并且不知道在哪里查看它是否与 BUG() 宏相同那里提到过。
我在我的 OSX 版本上遇到了一些仅在发布版本上崩溃的问题,这与 ud2 操作码有关,我想知道什么会导致 clang 生成它们。这是一个例子:
COMMON_UI::BackProject3DPosition(UTILITYLIB::TVECTOR<float, 3u> const&, UTILITYLIB::TVECTOR<float, 3u> const&) const:
0x1e0705c: pushl %ebp
0x1e0705d: movl %esp, %ebp
0x1e0705f: ud2
0x1e07061: nop
这只发生在-O2,而不是-O1,所以看起来优化有点不对劲。
任何帮助将不胜感激。
【问题讨论】:
-
这个问题比 Stackoverflow 更适合Clang developer's mailing list 或LLVM bugtracker。话虽如此,请尝试将您的代码减少到 SSCCE,并将其发布到邮件列表或 bugtracker。然后,可以解决此问题的人将拥有解决问题所需的一切。