为什么EXC_BAD_ACCESS只发生在LLVM库中而不发生在GNU库中?

时间:2014-04-02 15:15:11

标签: c++ exc-bad-access

几天前,我发现由于EXC_BAD_ACCESS,oracle即时客户端与LLVM C ++库不兼容。因此,我将库更改为GNU C ++库,并且每件事都有效。

今天,我意识到oracle客户端的错误可能是由返回一个局部变量引起的。使用LLVM C ++库编译程序时,会出现EXC_BAD_ACCESS。但是,我将库更改为GNU C ++库,向量可以推送10但它无法返回10.我不知道为什么只有LLVM库才会出现EXC_BAD_ACCESS。

LLVM(本地) enter image description here

GNU(本地) enter image description here

1 个答案:

答案 0 :(得分:1)

您正在调用未定义的行为。

在任何给定的程序执行中发生的事情都没有定义,并且可能因编译器而异。这显然是这里发生的事情。你不幸的是,破坏的代码在没有GNU库的错误的情况下运行。