我正在尝试运行以下代码:
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/