Objective c Xcode调试问题

Objective c Xcode调试问题,objective-c,cocoa,xcode,Objective C,Cocoa,Xcode,我对Xcode调试器有点小问题。在我看来,“介入”功能并不像它应该的那样工作。或者就像我期望的那样 我可以单步执行任何方法调用,只要它没有返回值: [myObject DoSomething]; 这是可行的,但如果该方法有返回值,则不需要介入。调试器只需对该方法进行一步操作 double b = [myObject CalculateSomething]; 如果我对函数而不是方法执行相同的操作,调试器总是逐步进入函数调用。不管它是否有返回值 这是虫子吗?这是一个特色吗?是不是应该这样? 我在

我对Xcode调试器有点小问题。在我看来,“介入”功能并不像它应该的那样工作。或者就像我期望的那样

我可以单步执行任何方法调用,只要它没有返回值:

[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在呼叫后是零?源链接过期了。这是你链接的吗?源链接已过期。这是你链接的吗?