Objective c Xcode调试问题
我对Xcode调试器有点小问题。在我看来,“介入”功能并不像它应该的那样工作。或者就像我期望的那样 我可以单步执行任何方法调用,只要它没有返回值:Objective c Xcode调试问题,objective-c,cocoa,xcode,Objective C,Cocoa,Xcode,我对Xcode调试器有点小问题。在我看来,“介入”功能并不像它应该的那样工作。或者就像我期望的那样 我可以单步执行任何方法调用,只要它没有返回值: [myObject DoSomething]; 这是可行的,但如果该方法有返回值,则不需要介入。调试器只需对该方法进行一步操作 double b = [myObject CalculateSomething]; 如果我对函数而不是方法执行相同的操作,调试器总是逐步进入函数调用。不管它是否有返回值 这是虫子吗?这是一个特色吗?是不是应该这样? 我在
[myObject DoSomething];
这是可行的,但如果该方法有返回值,则不需要介入。调试器只需对该方法进行一步操作
double b = [myObject CalculateSomething];
如果我对函数而不是方法执行相同的操作,调试器总是逐步进入函数调用。不管它是否有返回值
这是虫子吗?这是一个特色吗?是不是应该这样?
我在不同的机器上用当前的Xcode和Xcode 4测试版进行了尝试,但调试器拒绝使用返回值的方法
编辑
是的,我处于调试模式。我没有收到编译器错误和警告。我随时都可以很容易地重现这个问题。方法CalculateMething->只需返回5;调试器不会介入其中。之后该值不为零,程序工作正常
只有调试器拒绝使用返回值单步执行该方法或任何其他方法。我在Xcode 3.2.3上没有看到这个问题 但是,我看到过一些情况,调试器对针对嵌入方法返回的对象调用的方法感到困惑,例如
id myResult=[[self returnAnObject] tellObjectToDoSomething];
有时,调试器似乎不知道要放入哪个方法,或者它“忘记”了该行有两个方法调用
如果您有自定义访问器,您可以始终将其放入访问器而不是外部方法(即
tellObjectToDosMething
)我在Xcode 3.2.3上没有看到这个问题
但是,我看到过一些情况,调试器对针对嵌入方法返回的对象调用的方法感到困惑,例如
id myResult=[[self returnAnObject] tellObjectToDoSomething];
有时,调试器似乎不知道要放入哪个方法,或者它“忘记”了该行有两个方法调用
如果您有自定义访问器,您可以始终进入访问器而不是外部方法(即
tellObjectToDosMething
)在调试项目设置中,您必须禁用代码优化选项,且优化级别=无
祝你好运
来源:在调试项目设置中,必须禁用代码优化选项,且优化级别=无 祝你好运
来源:关闭代码优化。在生成设置中,更改: 致:
关闭代码优化。在生成设置中,更改: 致:
您是否在调试模式下构建?你以前声明过那个方法吗?有编译器警告吗?控制台上有输出吗?如果我不得不猜测,b在调用后是零?你是在调试模式下构建的吗?你以前声明过那个方法吗?有编译器警告吗?控制台上有输出吗?如果我不得不猜测的话,b在呼叫后是零?源链接过期了。这是你链接的吗?源链接已过期。这是你链接的吗?