gpt4 book ai didi

objective-c - 数据库错误 : variable not available

转载 作者:IT王子 更新时间:2023-10-29 07:57:24 26 4
gpt4 key购买 nike

这是我的两行代码:

NSString *frontFilePath = [[NSBundle mainBundle] pathForResource:[self.bookendFileNames objectAtIndex:self.randomIndex] ofType:@"caf"];
NSLog(@"frontFilePath = %@", frontFilePath );

我在第二行打了个断点,然后尝试打印它:

(lldb) po frontFilePath

但是我得到以下错误:

error: variable not available

我很困惑,因为如果我越过 NSLog 语句,变量确实会打印到控制台。

就其值(value)而言,我正在尝试调试第一行,因为有时它返回 NULL,但我现在还不能弄清楚原因。

最佳答案

这是调试优化代码的神器。当编译器的优化在您的build设置中启用时,它会在内存和寄存器之间移动变量,因为它决定是最好的。在您检查 lldb 中的变量时,它可能根本不存在于寄存器或内存中——即使它看起来应该仍可用于显示。

有可能是编译器输出的调试信息有问题。有时,编译器会将一个变量复制到一个寄存器中供其使用,并且只在调试信息中列出该寄存器的位置。后来该寄存器被重新用于其他用途;值仍然存在于堆栈中,但编译器没有告诉调试器可以在那里找到该值。

真正判断调试信息是否不足或该特定指令中的值是否真的不存在的唯一方法是手动检查汇编代码。一旦您使用编译器打开优化,源代码就会变成一个弱 View ,无法查看实际以任何特定顺序执行的内容。

与其在优化代码调试的古怪世界中徘徊太远,我强烈建议关闭优化(build设置中的优化级别)并以这种方式调试,如果可能的话。如果您确实需要通过优化来调试您的应用程序,请确保您正在使用 Xcode 支持的最新 Apple LLVM 编译器进行构建——总是有工作来改进优化的代码调试,并且您希望充分利用自己您可以使用最新的工具。

关于objective-c - 数据库错误 : variable not available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13040777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com