在Xcode中调试时,可以更改当前执行行吗?
调试器允许我拖动小绿线指针,但它似乎没有任何效果,当我单步执行时,它的行为就好像我从未拖动过它一样 只是想知道bug是否是:在Xcode中调试时,可以更改当前执行行吗?,xcode,debugging,Xcode,Debugging,调试器允许我拖动小绿线指针,但它似乎没有任何效果,当我单步执行时,它的行为就好像我从未拖动过它一样 只是想知道bug是否是: 它没有正确更改当前执行指针,或者 它让我可以把东西拖走 在Xcode中调试时,可以更改当前执行行吗 是的,可以更改。 它可以工作,在你跨过去,但从下一步点击 请参见此示例: 假设绿色箭头位于“a”中 它进入某个堆栈,当你“跨过”时会打印出来。然后移到“b” 作为: 然后“b”进入堆栈,它将被打印出来。现在通过拖动将>>更改为“e”,如下所示: NSLog(@"
- 它没有正确更改当前执行指针,或者
- 它让我可以把东西拖走
NSLog(@"a");
NSLog(@"b");
NSLog(@"c");
NSLog(@"d");
>> NSLog(@"e");
NSLog(@"f");
现在将打印“b”,指针将移动到下一个语句,即“e”
如果再次将其向后或向前移动,它将改变其位置,但将打印“e”,因为它已保存在准备打印的某个堆栈中。Xcode将指令指针从左侧拖动到一个全新的可视项,并将其移动到最右侧 汉堡图标(如下图所示)实际上是当前指令指针的拖动手柄
有趣的行为,尽管有些奇怪。很高兴知道它是可以更改的,但对我来说,如果我不能更改当前(即下一条)指令,这似乎是毫无意义的。我不能从“if let”块返回是正常的吗?我在函数的开头3行开始调试,然后我进入“if let”块,如果我试图返回到函数的第一行,我收到错误。
NSLog(@"a");
>> NSLog(@"b");
NSLog(@"c");
NSLog(@"d");
NSLog(@"e");
NSLog(@"f");
NSLog(@"a");
NSLog(@"b");
NSLog(@"c");
NSLog(@"d");
>> NSLog(@"e");
NSLog(@"f");