0

アプリケーションで特定の関数をデバッグしようとしていますが、ローカル変数が表示されておらず、コードの実行が1行ずつ進行していないため、注意が必要です。代わりに、少し飛び回っているように見え、ローカルスコープの変数の多くがデバッグ領域に表示されません。

この関数は、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が有効な結果を出力するのは残念ですが、ステップスルーしようとすると、adjust要素またはcurCenter要素を手動で検査することはできません。

AppleLLVM3.1を使用したコンパイル

ありがとう、

4

1 に答える 1

0

週末を離れて、新鮮な心がこの問題を助けました。

結局、私はLLDBではなくGDBデバッグに切り替えました。これにより、はるかに有用なエラーメッセージ「コンパイラによって最適化された変数」が生成されました。最適化をオフにしても、コンパイラーは実際には必要のない愚かな変数を取り除くでしょう。(デバッグをより明確にするために追加しただけです。コードには必要ないことを認識しています)

それが確立されたら、adjustcurCenterを「揮発性」として識別し、問題は解決しました。私はまだコードの実行で少し飛び回っているのを見ますが、私はそれを他の最適化にチョークで書いています

于 2012-04-30T13:55:53.870 に答える