2012-04-26 2 views
0

내 응용 프로그램에서 특정 함수를 디버깅하려고하지만 로컬 변수가 표시되지 않고 코드 실행이 한 줄씩 진행되기 때문에 까다로운 문제입니다. 대신, 조금 주위에 뛰어 다니는 것처럼 보입니다. 그리고 디버깅 영역에는 내 로컬 범위 변수가 표시되지 않습니다.Xcode 디버깅이 줄 진행, 최적화를 따르지 않음

함수는 assetForURL결과 블록으로부터 호출된다.

내가 최적화에서이 동작 중 일부를 기대하지만, 나는 그들을 끄고 같은 문제가 있습니다. 다음은 코드의 일부입니다. 나를 죽이고 무엇

{ 
UIImageView* newImage = [[tvVC imageViewArray] objectAtIndex:viewIndex]; 
UIImageView* oldImage = [[tvVC imageViewArray] objectAtIndex:((viewIndex + 1) % 2)]; 

[newImage setImage:image]; 
[newImage setBounds:CGRectMake(0, 0, image.size.width, image.size.height)];   
[newImage setTransform:CGAffineTransformMakeScale(scalar * minScalar, scalar * minScalar)]; 
CGPoint adjust = [scrollView contentOffset]; 
CGPoint curCenter = [oldImage center]; 
NSLog(@" offset %f, %f center %f, %f",adjust.x, adjust.y, curCenter.x, curCenter.y); 
} 

는 NSLog가 유효한 결과를 인쇄,하지만 난 시도하고 단계별 경우, 나는 실제로 수동으로 또는 curCenter에게 요소를 조정 검사 할 수 없다는 것입니다. 3.1

감사합니다,

답변

0

주말 멀리 애플 LLVM을 사용하여 새로운 마음 컴파일

이 문제에 도움을 주었다.

결국 GDB 디버깅과 LLDB 디버깅으로 전환했습니다. 이로 인해 '컴파일러가 최적화 한 변수'라는 훨씬 더 유용한 오류 메시지가 나타납니다. 최적화를하지 않아도 컴파일러는 실제로 필요하지 않은 어리석은 변수를 없앨 것입니다. 그가 설립 된 후, 난 그냥 가 '휘발성'와 문제로curCenter을 조정 확인

(I는 나에게 더 명확 디버깅 할을 추가, 나는 그들이 코드를 필요하지 않습니다 실현) 해결되었습니다. 나는 코드 실행에서 약간의 호핑을 보았지만, 다른 최적화를 위해 그 코드를 사용하고있다.