46

xcode 4.3に更新し、デバッガーをlldbに切り替えたため、メンバー変数を出力する要求はすべて失敗し、次のエラーメッセージが表示されます。

(lldb) print request
error: error: reference to 'id' is ambiguous
note: candidate found by name lookup is 'id'
note: candidate found by name lookup is 'id'
error: 1 errors parsing expression

「自己」は大丈夫です:

(lldb) print self
(LoginViewController *) $6 = 0x1cd54d50

また、メンバー変数を出力する他の形式も失敗します。

(lldb) print self.request
error: property 'request' not found on object of type 'LoginViewController *'; did you mean to access ivar 'request'?
error: 1 errors parsing expression
(lldb) print self->request
error: error: reference to 'id' is ambiguous
note: candidate found by name lookup is 'id'
note: candidate found by name lookup is 'id'
error: 1 errors parsing expression

それ以外はすべて正常に機能しているようです。Xcodeの可変ウィンドウは値を正しく取得できます。クリーンビルドを試し、〜/ Library / Developer / Xcode /DerivedData/を削除しました。グーグルは同じ問題の他の例を明らかにしていません。

Appleの開発フォーラムで1つのスレッドを見つけましたが、解決策はありません。

https://devforums.apple.com/message/623694

私はこれをバグID#11029004としてAppleに報告しました。

4

5 に答える 5

39

私は1つの回避策を見つけました:

[製品]メニューの[スキームの編集]を使用し、左側のバーの[実行]、[情報]タブを選択して、デバッガーをgdbに変更します(これは、gdbがなくなったxcode 5には適用されません)。

どうやらAppleはxcode4.3.1でこのバグを修正したと思っていたようですが、それでも起こります。私は彼らが要求したいくつかの追加のデバッグ情報を提出したので、xcodeの次のリリースで修正されることを望んでいます。4.3.2でもまだ失敗しています。Appleからのアップデートについては、https://devforums.apple.com/message/623694を参照してください。

アップデート

問題が発生したさまざまなケースを試しましたが、Xcode 4.4.1のlldbですべて正常に機能しているようです。したがって、この問題が発生した場合は、アップグレードすることを強くお勧めします。

于 2012-03-01T12:14:20.820 に答える
2

Edit scheme[製品]メニューで使用し、左側のバーの[実行]、[情報]タブを選択して、デバッガーをgdbに変更します。

Product>> (スキーム)> Edit Scheme3 つのオプションがあります(1、2が2つしか表示されない場合があります)1。デバッグ2.リリース3. AdHocRunBuild Configuration

設定されているかどうかをクロスチェックし、設定されDebugていない場合はデバッグにします。

これは私がしていた間違いでした

于 2012-11-05T05:52:05.420 に答える
1

(Xcode5)これは元の質問に対する直接的な回答ではありませんが、関連性があると思います。追跡したように、他の誰かが時間を無駄にしているとは思いたくありません。私が抱えていた問題は、デバッグ ウィンドウに変数の値が表示されないことでした。

実際にコンパイラに与えられた呼び出しを確認したところ、ワークスペース内のすべてのプロジェクトとターゲットが明示的に -O0 に設定されていて、ここの他の回答で言及されている設定がすべてに設定されているにもかかわらず、-Os で最適化されていることがわかりました。デバッグ。多くの検索の後、各プロジェクトの「情報」セクションに「コマンドラインビルドにxxxを使用する」というオプションがあることがわかりました.xxxはデバッグ/リリースまたは利用可能な構成です。ツールチップの説明によると、このオプションは xcodebuild ツールを使用してコマンドライン経由で実行されたビルドにのみ影響するはずです (このツールはコマンドライン オプションとして使用するスキームを完全に選択できるため、これは少し奇妙です)。とにかく、このオプションを Debug に変更すると、最終的に IDE はコンパイラに -O0 と -g が必要だと伝えました。

また、この設定を変更する前に、クリーンアップを行うことをお勧めします。クリーニングせずに変更したところ、突然ヘッダー ファイルの一部が見つからなくなりました (プリコンパイル済みヘッダーが正しく生成されていないようです)。暗闇の中でさらに 1 時間ほど突き刺した後、最初に上記のオプションをリリースに戻してクリーンアップを行うと、それをデバッグに設定して正常にビルドできることがわかりました。

Xcode 開発チームが実際にそれを使用しているかどうか知っている人はいますか? そうではないという明確な印象を受けます。

于 2013-10-10T21:42:27.300 に答える
0

Product-> Scheme->に移動しNew Scheme...、ターゲットの新しいスキームを作成します。Product->の下で製品をクリーンアップするCleanと、アプリが正常に動作するはずです。

これを行うと、私の問題は解決しました。

于 2015-07-22T12:11:59.427 に答える