web-dev-qa-db-ja.com

ブレークポイントが機能しないのはなぜですか?

ブレークポイントを設定していますが、Xcodeはそれらを無視するようです。

95
AlanKley

まず、ターン[〜#〜] off [〜#〜]Load Symbols Lazily

さらに2つ追加します。

(私の最初の提案は明白に聞こえますが、最初に誰かが私にそれを提案したとき、私の反応はこれらの線に沿って進みました。

  1. 誤って「Active Build Configuration」を「Release」に設定していないことを確認してください。

  2. プロジェクトのグラフィカルツリー表示の[ターゲット]で、ターゲットを右クリックして[情報を取得]を実行します。 「Generate Debug Symbols」(または同様の)という名前のプロパティを探し、これがチェックされていることを確認します(別名ON)。また、「ターゲット>>情報を取得」でも「デバッグ情報フォ​​ーマット」というプロパティを見つけて、「dwarf with dsym file」に設定してみてください。

[ターゲット] >> [情報を取得]には、他にも影響する可能性のあるプロパティがいくつかあります。コードの最適化や圧縮のようなものを探して、そのようなものをオフにします(デバッグモードで作業していると仮定します。これは悪いアドバイスではありません)。また、シンボルの除去などを探し、それもオフになっていることを確認します。たとえば、デバッグターゲットの場合、「Strip Linked Product」を「No」に設定する必要があります。

139
pestophagous

Xcode 7では、私にとってうまくいったのは:

1)ターゲット->スキーム->実行-がデバッグモードであることを確認します(リリースされました)

2)「デバッグ実行可能ファイル」オプションを確認してください。以下を参照してください。

enter image description here

32
Oded Regev

Xcodeのデバッグ設定に移動します。 「シンボルを遅延ロード」が選択されていないことを確認してください。

25
AlanKley

私はちょうど同じ問題を抱えていました(もう一度)。 「シンボルの遅延ロード」をトリプルチェックし、情報生成フラグを削除してデバッグした後、次のことを行いました。

  1. xcodeを終了
  2. ターミナルウィンドウを開き、プロジェクトディレクトリに移動します
  3. .xcodeprojディレクトリにcd
  4. .pbxprojファイル以外のすべてを削除します(frank.mode1v3とfrank.pbxuserがありました)

Finderで.xcodeprojバンドルを右クリックまたはOptionキーを押しながらクリックし、「パッケージの内容を表示」を選択すると、同じタスクを実行できます。

Xcodeを再起動すると、すべてのウィンドウがデフォルトの位置などにリセットされましたが、ブレークポイントは機能しました!

14
Frank Szczerba

Xcode 4.xの場合:[製品]> [デバッグワークフロー]に移動し、[デバッグ時に逆アセンブリを表示]をオフにします。

Xcode 5.xの場合、[デバッグ]> [ワークフローのデバッグ]の順にクリックし、[デバッグ時に逆アセンブリを表示]をオフにします。

12
bneupaane

この投稿を参照してください: Xcodeで機能しないブレークポイント? 。 「デバッグ」ではなく「実行」を押している可能性があります。その場合、プログラムはgdbの助けを借りて実行されていません。その場合、ブレークポイントが機能するとは期待できません。

8
Soong

もう一つの理由

BuildSettingsでDeploymentPostprocessingをNOに設定します- 詳細はこちら

要するに -

この設定を有効にすると、バイナリが削除され、ファイルモード、所有者、およびグループ情報が標準値に設定されます。 [DEPLOYMENT_POSTPROCESSING]

enter image description here

7
gbk

Xcode 4の場合:

go Product -> Debug ->  Activate Breakpoints
4
evya

同じ問題(ブレークポイントで停止しないXcode 6のCコード)でこのページにアクセスしましたが、上記の解決策はいずれも機能しませんでした(プロジェクトは設定通り、箱から出せなかったため、デバッガー設定が間違った値に設定してください)...

問題を減らすためにかなりの時間を費やした後、私は最終的に犯人を見つけました(私のコードの場合):

Xcode(/ LLVM)はBisonスタイル#lineプリプロセッサコマンド。

それらを削除することで問題が解決しました(デバッガーがブレークポイントで停止しました)。

4
Dave

XCode 9.4.1の解決策(ブレークポイントで停止しませんでした):

ビルドターゲットの下で->ビルド設定->最適化レベル:「速度のために最適化」から切り替え-「最適化なし」(現在は低速ですが動作します)

4
Strinder

これにより、Xcode 9で半日イライラしていました。簡単なデバッグ設定になりました。

[デバッグ]> [ワークフローのデバッグ]に移動し、[常に逆アセンブリを表示]がオフになっていることを確認します。そのような単純な。 :(

3
Gaz Long

これは、これが発生する可能性のある理由の1つである可能性があります。..[製品]、[スキーム]、[スキームの編集]、[実行]、[情報]、[実行可能デバッグの実行]の順に移動します。

2
Soropromo

問題は、デバイスのバージョンとXcodeの間の非互換性だと思います。 iOS 5.0.1を実行しているiPhone 4Sでデバッグしようとすると、この問題が発生します。私はまだXcode 3.2.5を使用しています。オーガナイザーウィンドウで[開発にこのデバイスを使用する]を選択して、ハンドセットからシンボルを取得しました。ただし、この電話はブレークポイントを拒否します。私の古い3GS willブレークポイント、同じXcodeプロジェクト、同じ設定...異なるデバイスで、iOS 4.0を実行しています。シンボルがあるので、これは3.2.5のXcodeのバグだと思います。ここまでに投稿したすべてのソリューションを試してみましたが、私の問題の解決策はXCode 4にアップグレードすることであると判断しました。たぶんそれは明らかです-誰でも確認できますか?

編集:これが正しいことを確認できたら更新します。

2
Gavin

Buildフォルダを削除すると、問題が解決しました。

2
Jack Bellis

Xcode(2.4.1)のブレークポイントには多くの問題があります。他のプロジェクト(Visual Studioのソリューションなど)のみを含むプロジェクトを使用します。開始プロジェクト(つまり、コードのエントリポイントを含むもの)に少なくとも1つのブレークポイントが設定されていない限り、ブレークポイントがまったく機能しないことがあります。ブレークポイントが「下位レベル」プロジェクトにある場合、それらは無視されます。

また、ブレークポイントが置かれているソース行を含むプロジェクトにいるときにブレークポイントを操作すると、Xcodeはブレークポイント操作のみを正しく処理するように見えます。

別のプロジェクトを介してブレークポイントを削除または無効にしようとすると、デバッガーがブレークポイントがあることを示していても、アクションが有効にならないことがあります。そのため、無効になっているブレークポイント、または以前に削除した(現在は表示されていない)ブレークポイントでブレークすることになります。

2

ブレークポイントが機能していなかったので、すべてのターゲットをビルド/クリーンアップして、再び機能するようにしました。

2
snowytree

このため、またXcode 6以降では、ブレークポイント状態ボタンがアクティブになっていることを確認してください(青い矢印のようなボタン):

enter image description here

2
df611

Xcode 4で

- Product menu > Manage Schemes
- Select the scheme thats having debugging problems (if only one choose that)
- Click Edit button at bottom
- Edit Scheme dialog appears
- in left panel click on Run APPNAME.app
- on Right hand panel make sure youre on INFO tab
- look for drop down DEBUGGER:
- someone had set this to None
- set to LLDB if this is your preferred debugger
- can also change BUILD CONFIGURATION drop down to Debug 
-      but I have other targets set to AdHoc which debug fine once Debugger is set
1
brian.clear

上記のすべてを試してみましたが、デバッグブレークポイントを一度無効にしてから有効にしただけです。

1
user8032120

 enter image description here

1
Stan

問題が見つかりました。どういうわけか、「デバッグ時に逆アセンブリを表示」がXCodeで有効になり、その問題が発生しました。無効にすると、すべてのデバッガーがソースコードで停止しました。

以下で見つけることができます:Product->Debug Workflow->Show Disassemblyデバッグ時。

1
Perumal

ブレークポイントではなく、他のすべてが失敗した場合、次の関数を呼び出すことができます。

void BreakPoint(void) {
    int i=1;
    #if !__OPTIMIZE__
    printf("Code is waiting; hit pause to see.\n");
    while(i);
    #endif
}

再開するには、手動でiをゼロに設定してから、再開ボタンを押します。

1

XCode 6.3.1でも同じことが起こりました。私はそれをどうにかして修正しました:

  • View-> Navigators-> Show Debug Navigatorsに移動します
  • プロジェクトルート->ブレークポイントの移動で右クリック(ユーザーオプションを選択した場合)
  • (オプションbreak breakpointsも選択しましたが、必要かどうかはわかりませんが)。

その変更を行った後、プロジェクトにブレークポイントを移動するオプションを設定し、ブレークポイントを共有解除するオプション、まだ機能します。

理由は正確にはわかりませんが、これによりブレークポイントが元に戻ります。

1
Osk

Xcode 6.4では、Macを再起動する必要がありました。

(ブレークポイントの有効化/無効化、iOSデバイスの再起動、Xcodeの再起動、ワークスペースパッケージからのブレークポイントファイルの削除...)

0
user2067021

Subversionを使用している場合は、プロジェクトファイルを元に戻す(only)だけで、デバッガーが動作していることがわかっていた時点に戻します。

0
stephen

共有ライブラリ(またはプラグイン)で作業している場合、起動時にブレークポイントが黄色になり、キーボードが欲求不満になり、デバッグプロセスが停止する可能性があります。まあ、それをしないでください!アプリがライブラリをロードするまでシンボルはロードされません。ライブラリがロードされると、ブレークポイントが有効になります。ブラウザプラグインでこの問題に遭遇しました...プラグインをインスタンス化したページを参照するまで、BPは無効にされていました。

0
Tim Keating

これは、少なくともiOSプロジェクトでは時々発生します。修正するには、iOSデバイスを再起動し、Xcodeを終了して、プロジェクトを再構築する必要がありました。

0
kakyo

また、アプリのAppStoreディストリビューションもデバイスにインストールされていないことを確認してください。

0
dan

すべての基本的なチェックを行った場合は、プロジェクトターゲットおよびプロジェクト設定で最適化レベルを確認してください。デバッグに[なし]を選択したことを確認してください。

enter image description here

シミュレータを使用し、Scheme起動設定を「実行可能ファイルを待機」するときにXcodeがブレークポイントを失う問題がありました。それを「自動的に起動する」に変更すると、ブレークポイントが復活します。

0
Richard

チェックすべきもう1つのことは、デバッグモード用の「資格」plistファイルがある場合(おそらくキーチェーンを使用しているため)、plistファイルに「get-task-allow」= YES行があることを確認することです。これがないと、デバッグとロギングが壊れます。

0
davidcann

プロジェクトは、ブレークポイントに関しても破損する可能性があると思います。たとえば、前のセッションで記憶したブレークポイントでブレークしないプロジェクトがあります。私は最初にこれについて書いた ここ

0
AlanKley

カスタム実行ファイルがSafari 5.1であるWebプラグインをデバッグしたいとき、私は同じ問題に直面していました。 Safariを4.0.5から5.1にアップグレードするまでは正常に動作していました。 Safari 4.0.5を再度インストールすると、Xcode設定を変更せずにすべてのブレークポイントが機能し始めました。

0
user917691

Xcode 3.2.3 SDK 4.1を持っています4.1ブレークポイントがランダムに失敗します。ビルドをクリーンアップし、ビルドの下でtouchコマンドを使用すると、再び機能することがわかりました。

0
Damon McGIll

ブレークポイントが黄色になる別の理由は、デバッグしているアプリケーションバイナリが最初に実行されてから変更されている場合です。私の場合、プログラムを1回デバッグした後、アプリケーションのContents/Resourcesフォルダーにフォルダーを追加しました。フォルダーを追加した後のデバッグ実行で、ブレークポイントが黄色に変わり、無視されました。私は自分の手順を変更しました:クリーンアップ、ビルド、フォルダーの追加、実行を行いましたが、すべて順調でした。

おそらくXcode(またはOS X)は、アプリケーションの独自のデジタル署名(notデジタル署名)を作成して記憶し、アプリケーションが変更されたことを検知して、ブレークポイントの設定を拒否します。アプリケーションの最初の(デバッグ)実行の前にmodを作成することにより、デジタル署名が作成されましたwith my mods。

これはすべて、Xcode 3.2.2を使用するOS X 10.6.8で。

0
user532477

XCode 4.2でこれを解決したところ、上記のいずれも助けになりませんでした。問題は(実際に何が起こったのかわかりませんが、おそらくこれが誰かを助けるかもしれません):私のチームメイトはSVNで新しいビルド構成と更新されたプロジェクトを作成しました。 Run Scheme設定で古いビルド構成がセットアップされていたので、手順は次のとおりでした。

  1. 製品->スキームの編集...
  2. [%project_name.app%を実行]を選択します(または問題の原因となるもの)
  3. ビルド構成コンボで、チームメイトからその新しいビルド構成を選択します

そして、それだけです、ブレークポイントが再び戻ってきました。お役に立てれば。

0
MANIAK_dobrii

Xcodeを少しやったことはありませんが、「Zerolink」と「Load Symbols Lazily」を無効にすることをお勧めします。それはほとんどの問題を修正します。とにかく、ゼロリンクは憎悪です。

0
duane

Xcodeのブレークポイントには3つの状態があるようです。それらをクリックすると、さまざまな設定が行われます。濃い青が有効になり、グレー表示が無効になり、淡い青色が表示されることがありますが、ブレークポイントをクリックして濃い青色に戻す必要がある場合があります。

これ以外は、runコマンドではなくdebugコマンドで起動していることを確認してください。これを行うには、option + command + returnを押すか、実行メニューからGo(デバッグ)オプションを選択します。

0
crackity_jones

ブレークポイントを設定するとき、右クリックすると、ブレークポイントの処理方法に関するいくつかのオプションが表示されます(変数のログと続行、実行の一時停止など)。

また、デバッグ設定で「Load Symbols lazyly」が選択されていないことを確認してください。

(Xcode 3.1に適用、過去/将来のバージョンについては不明)

0
Scott Swezey

Xcode 5と6の両方をGMとすると、前者はブレークポイント機能を失います(Xcode 6ベータ版は問題ありませんでした)。

提案された方法の多くを試してみましたが、最終的にはあきらめ、現在Xcode 6を使用しています。

0
Rivera

私のケースでそれを解決したのは非常に簡単で、Xcode-製品-ビルドフォルダをクリーンしてから製品-実行(Xcodeを再生ボタンではありません)でした。

(Xcode再生ボタンを長押しして単体テストに切り替えた後、Xcode 11 -beta 4で問題が発生しました)

0
Lukas

ターゲット設定で1つの設定を確認できますApple LLVM Compiler 4.1 Code Generation Section Generate Debug Symbol = YES

0
Pushan

私の場合、ブレークポイントが誤って無効になっていることがわかりました。 Debug-> Activate Breakpoints [Cmd + Y]。を使用して、再度アクティブにすることができます。

判明したように、Cmd + Yキーでブレークポイントのアクティブ化をいつでも切り替えることができるため、この組み合わせキーに気付かずにヒットする可能性があります。このレポートはXcode 7.2に基づいています。

0
Benny Khoo

Xcode 4以降の場合*シンボルを遅延ロードする*はdropped。この記事を参照してください ここをクリック

シンプルで詳細な説明がうまくいきました。

0
Ajit Satarkar