2012-04-02 17 views
6

現在、Xcode 4.3.2でiOSアプリケーションを作成しています。私のコードのほとんどの部分では、LLDBでのデバッグはうまく動作します。しかし、ある時点で私のコードを踏んでいる間に奇妙なメッセージが表示されています。私の価値を示すのではなく、Objective-Cの間接的なIVAR記号OBJC_IVAR _ $ _ MyFancyClass.iVarLLDBを使用したXcode 4.3の奇妙なエラーメッセージ

が見つかりませんでした:私はIVAR上にカーソルを移動すると、それは

エラー[IRForTarget]言います。しかし、Variables Viewでは、私はそれがうまく見ることができます。 Print Description of ...が選択されるまでは、Xcodeがクラッシュするため... GDBを使用すると、ホバリングは機能しますが、変数の型と値が間違っています。

私のコードに間違いがあり、デバッガが失敗することがあります。ただし、コードはうまく動作します。私はいくつかのサンプルコードを提供したいと思っていますが、クラスはかなり長く、スクリューアップの正確な位置を特定することはできません。誰も同じような行動を起こしたのですか?

更新:実際には、これは特定のファイルだけでなく、実際にはコード内のどこでも発生しているようです。助けがあれば、LLDBは上記のメッセージを表示しますが、GDBはiVar自体ではなく、iVarを所有しているクラスのオブジェクトを常に表示します。 メモリ管理に問題があるかのように見えます。例えば、私は

[notificationCenter addObserver:self selector:@selector(foo) name:bar object:objA]; 

セレクタのようなものは、私が

[notificationCenter postNotificationName:bar object:objB]; 
+0

コードが長いかもしれませんが、十分な人がこれに遭遇したようではありません。この現象が発生した場合、いくつかのコードの要約バージョンを表示できますか? –

+0

まあ、私のコードのどこかで絶対に起こるので、私は実際に何を投稿できるのかわかりません... – Phlibbo

+0

私はここで推測していますので、私は答えを投稿していませんが、デバッガコンソールを開き、 "po"を使ってオブジェクトを印刷しますか?また、特別なgdb設定ファイルを用意していますか?これはデバッグしようとしているライブラリですか?デバッグ情報を有効にしてビルドしていますか?ビルド設定をダブルチェックします(デバッグシンボル、最適化レベル、デバッグ情報フォ​​ーマットを生成します)。 –

答えて

9

質問のコメントに記載されているように、このエラーの原因は誤ったビルド設定です。これは、デバッグモード(デフォルト値)で「展開後処理」をNOに戻すことで修正できます。

2

MyFancyClass.mがあなたのターゲットに追加されていることを確認していた場合にも呼び出されると言う場合

+0

残念ながら、それはすでに:/ – Phlibbo

0

nsnotificationが送信されていることをあなたのセレクタtoにはNSNotificationという1つの引数が必要です。あなたがこれを行うときに:

[notificationCenter addObserver:self selector:@selector(foo) name:bar object:objA]; 

-(void)foo 
{ 

} 

は...あなたはこれをやってする必要があります [通知センターaddObserver:自己セレクタ:@selector(FOO :)名:バーオブジェクト:OBJA];

-(void)foo:(NSNotification *)notification 
{ 

} 

通知センターのセレクタとfooの引数にコロンがあることに注意してください。

+0

です。しかし、それは私の擬似コードに誤字があった私だけでした。実際の問題は奇妙なデバッガの警告です。 – Phlibbo

+0

(NSNotification)通知 は (NSNotification *)の通知である必要があります – braden

関連する問題