2017-02-19 6 views
3

アップデート:Jason Molendaの答えに基づいて、私は設定コマンドが全く問題ではないことを認識しています - 正しく読み込まれていて、まだブレークポイントは解決されていません。トピック名を変更して問題をより正確に解決しました。xcodeのブレークポイントはインクルードされたcppファイルで解決されていません - MacOS

問題の概要:私はgutterを使用してブレークポイントを設定するとXcodeで解決できず、アプリケーションは外部で(Xcodeで開発されていない)ビルドされており、自分の.lldbinitは既にtarget.inline-breakpoint -strategyは常に設定されます。

前のバージョン: 私の問題は、私は(ちょうどデバッガとしてのXcodeを使用しようとし、外部に構築されたアプリケーションから)のXcodeのデバッガが.cppファイルのインクルードファイルにブレークポイントで中断してもらうことができないということです。

私は答えは.lldbinitファイルに以下を追加することであることがわかった。

設定常に

target.inline-ブレークポイント戦略を設定して、私がしました。それは全く読まれていないようで、何も変わらない。コマンドを実行すると、自分が使用して:

コマンドソース〜/ .lldbinit

をそれは私に語った:

-bash:設定:なぜそれができないコマンドが

を見つけていない、私は理解していないが'settings'コマンドを実行します。私はこのファイルがどのように動作するはずかについてほとんど知識がないことを付け加えますが、このコマンドは多くのlldbinitファイルで問題なく使用されています。

私はこれについての情報検索とGoogleは関係なく、私が検索する方法を、私はそれに少しでも関連する絶対に何も与えません。

その他のメモ:

- アプリケーションにはデバッグ情報が組み込まれています。

-ToはXcodeのを設定し、私は空のプロジェクトを作成し、私が建て1にデバッグする新しいスキームの実行可能ファイルを設定し、コードの閲覧のためのコードのフォルダ参照を追加しました。

-I Xcodeガターを使用してブレークポイントを追加します。

MacOSの10.12を使用して-I'm - シエラ、Linuxではなく、とXcode 8.2.1。

私はコマンドラインからLLDBを実行し、使用してブレークポイントを設定-if:Bのfilename.cpp:行を、すべてが正常に動作します。これは、「設定:コマンドが見つかりませんでした」というエラーが発生したにもかかわらず、手動で実行してもエラーになります。 Xcodeのビジュアルデバッガでは動作しません。おそらく私はこのエラーによって誤解されているでしょうか?

-Breakpointsはなく、任意の含まれたもので、他の人を含み、ベース.cppファイルで問題なく動作します。

ありがとうございました。

答えて

0

command source ~/.lldbinitはlldb内で実行する必要があります。シェルから実行しています。そのエラーメッセージはbashからのものです。( "settings"はbashに何も意味するものではありません)

settings set target.inline-breakpoint-strategy alwaysプロジェクトには、ヘッダファイルではなくソースファイルが含まれている必要があります。これは一般的ではないため、デフォルトの動作ではありません。デバッガのパフォーマンスが低下し、ここで必要なすべてのファイルがスキャンされます。 https://lldb.llvm.org/troubleshooting.htmlの最上部に文書化されています。ほとんどの人はこの設定を必要としません。

ソースエディタのブレークポイントガターをクリックしたときにXcodeのブレークポイントが動作している理由がわかりません。それは別の問題かもしれません。あなたのプロジェクトを立ち上げて、それを一時停止した場合、あなたはあなたがする意図のように、それはalwaysであることを確認するために、デバッガコンソールウィンドウに

(lldb) settings show target.inline-breakpoint-strategy 

を行うことができます。ブレークポイントが機能していない場合は、ビルド設定を調べ、ビルド設定の1つがデバッグ情報を生成していないかどうかを確認します。

+0

返信いただきありがとうございます。これは私が理解できなかったいくつかの事柄を明確にした。設定コマンドは意図したとおりに動作しており、「常に」に設定されています。明らかに、私の問題はまったく別のものであり、何がわからないのですか。私のビルドはデバッグ情報を生成しており、.cppファイルを含んでいます。 –

+0

Xcodeでプロジェクトを実行し、デバッガで一時停止してから、 'breakpoint list'を実行して、Xcodeがどのようにファイル名を指定しているかを確認してください。次に、ソースファイルの基本ファイル名に '' target module dump line-table' * filename *を実行して、ソースファイルの完全パスがデバッグ情報にどのように見えるかを確認してください。どちらのパスにも '/../'が入っていますか? http://bugreport.apple.comにこれらの詳細をすべて記述したバグレポートを作成し、そこでデバッグすることができます。プロジェクトのファイルのコンパイル方法に固有のものがあります。 –

+0

私はついにこれをテストする機会を得ました。何らかの理由で、ターゲットモジュールのダンプ行テーブルは、常に一致するものがないことを常に示しています。それは、ブレークポイントを正しく解決する基本.cppファイルについてもこれを私に伝えます。 "警告:ソースファイル名が ' .cpp'と一致しません。 エラー:ソースファイル名がコマンド引数と一致していません。" –

1

これは問題ですが、ここ数日は私を傷つけていました。インターネット上に文字通り何も助けになることはありませんが、最終的に私はそれを理解しました! Kindaは誤って - 私はものを手にしたが、今は完全に不思議な理由のために働く。

これはXcodeの8のためである - MacOSのシエラ - 2010年半ばコンピュータ

問題:外部ビルドで

、ブレークポイントは、メインのCPPファイルのために働くが、ブレークポイントは任意のために働いていませんインクルードファイル - "#include"に含まれるcppファイル lldbinitの設定は状況を改善するために何もしません。

症状:

はインクルードファイルで作成されたいくつかの新しいブレークポイントでプログラムを実行し、Xcodeのデバッガで一時停止キーを押してください。 LLRコンソール(画面の右下)に、 ブレークポイントリスト と入力します。ブレークポイントの末尾に「location = 0(pending)」と表示されます。メインファイルから作業中のブレークポイントを追加すると、 "location = 1"と表示されます。

策:プロジェクトマネージャで

、メインプロジェクトファイルをクリックし、その後、あなたのターゲットをクリックして、後藤「情報」 - 私はあなたが適切に構築することができるしていると仮定しているため、必要になりますBuild Toolボックスにbuild.shファイルへのパスがあります。しかし、ディレクトリボックスが空であることを確認してください(私の引数ボックスも空ですが、これは関連しているとは思えません)。

ディレクトリボックスが空になると、あなたのファイルを見つける。今

clang++ -g -I/usr/local/include/SDL2 -lSDL2 /absolute/path/to/sdl_mygame.cpp -o /absolute/path/to/mygameexecutable 

ビルド作品、そして神秘的に、今、あなたのブレークポイントのすべての作業:この問題を解決するには、そのようなあなたのパスをハードコーディング!

私のセットアップに関するその他の注意事項:

  • は外部
  • を構築するとして、私はこのプロジェクトを作成し、私は私のビルドファイルや未確認へ ポイント「パスが 環境でのビルド設定を」ターゲットを作成し
  • ビルドの下の私のスキームでこのターゲットを選択しました。
  • 実行時に自分のスキームで実行可能ファイルを選択し、デバッグをチェックしました。実行ファイル
  • 他のほとんどのxcode設定は必要ないようです。
  • 私は手作りのヒーローと一緒に以下のよ

・ホープ、このことができます!

関連する問題