我正在尝试运行以下代码:
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行崩溃。为什么会发生这种情况?如何解决这个问题?
答案 0 :(得分:8)
只需在未启用优化的情况下进行编译,或者如果您使用某种向导来构建项目,则选择“调试”构建。我不确定在XCode中关闭优化的位置,但您可能需要这些GCC命令行选项进行调试:
-O0 -fno-inline
答案 1 :(得分:5)
关闭所有内容的优化是一种选择。也可以指示编译器不应该优化特定变量。使用volatile
关键字:
volatile NSURL *checkLicenseURL = ...