仅出于测试目的,我包含了一个故意使我的应用程序崩溃的功能(测试我的应用程序对无意崩溃的处理)。为此,我正在使用:
strcpy(0, "crash");
当然,在分析我的代码时,Xcode 会报告逻辑错误
Null pointer argument in call to string copy function
。我试过像这样包装有问题的代码:#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnonnull"
strcpy(0, "crash");
#pragma clang diagnostic pop
但是 Xcode (v9.2 (9C40b)) 仍然提示(这不是警告,这是一个逻辑错误,我理解)。有没有其他方法可以防止 Xcode/clang 标记此代码?有什么更好的方法可以避免 Xcode/clang 分析错误导致崩溃?
最佳答案
这对我有用(无需包装警告抑制)。它通过了 Xcode/clang 的分析,但仍然导致我想要的崩溃:
char *x = (char *)@"0".integerValue; strcpy(x, "crash");
关于xcode - 防止 Xcode/clang 在故意有缺陷的代码上引发逻辑错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48173220/