現在、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];
コードが長いかもしれませんが、十分な人がこれに遭遇したようではありません。この現象が発生した場合、いくつかのコードの要約バージョンを表示できますか? –
まあ、私のコードのどこかで絶対に起こるので、私は実際に何を投稿できるのかわかりません... – Phlibbo
私はここで推測していますので、私は答えを投稿していませんが、デバッガコンソールを開き、 "po"を使ってオブジェクトを印刷しますか?また、特別なgdb設定ファイルを用意していますか?これはデバッグしようとしているライブラリですか?デバッグ情報を有効にしてビルドしていますか?ビルド設定をダブルチェックします(デバッグシンボル、最適化レベル、デバッグ情報フォーマットを生成します)。 –