Objective-C:变量被编译器优化掉

标签 objective-c cocoa xcode compiler-construction gdb

我正在尝试运行以下代码:

1. NSURL *checkLicenseURL = [NSURL URLWithString:@"check_license.php?accesskey=&license_key="];
// call server API
2. NSError *err = nil;
3. NSXMLDocument *xmlResult = [[NSXMLDocument alloc] initWithContentsOfURL:checkLicenseURL options:NSXMLDocumentTidyXML error:&err];

但是在 gdb 中查看变量时,在执行第 1 行之后,做

p checkLicenseURL

返回

$1 = <variable optimized away by compiler>

它还会导致第 3 行崩溃。为什么会发生这种情况,我该如何解决?

最佳答案

只需在不启用优化的情况下进行编译,或者如果您使用某种向导来构建项目,则选择“调试”构建。我不确定在哪里关闭 XCode 中的优化,但您可能需要这些 GCC 命令行选项来进行调试:

-O0 -fno-inline

关于Objective-C:变量被编译器优化掉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1968040/

相关文章:

objective-c - 与 Objective-C 选择器冲突的方法 - 最后是 'with'

支持iOS7的iOS Framework

iPhone Wifi 扫描 Sumbler

iphone - 用于游戏以外的应用程序的 GameKit

iOS NSScanner 从 2 个不同的输入中选择一个特定的字符串

objective-c - Cocoa 中出现窗口(及其 View )时的启动方法

cocoa + dmg 文件 + 追溯其路径

objective-c - 使用 NSXMLParser delegate 解析两个文件

objective-c - wait_fences : failed to receive reply: 10004003 while displaying UIAlertView and home button pressed

cocoa - 如何从 FSSpec 获取 NSString(Unix 风格路径)