要点: アプリケーションが起動するのを Xcode で待機させ、Xcode の外部からアプリケーションを起動し、Xcode をブレークポイントで停止させることは可能ですか?
--詳細は後述--
10.8.5 で Xcode 4.6.3 を使用してテキストを stdin にパイプする必要がある単純な C プログラムをデバッグ (行ごとにステップ実行) したいと考えています。
そのためには、次のようにプログラムを起動する必要があります $ cat in.txt | ./mysimpleprogram > out.txt を実行し、Xcode デバッガーをブレークポイントで停止させます。
この回答https://stackoverflow.com/a/13006633/2779792で見つけた指示に従いましたが、Xcode はブレークポイントで停止しません。
問題を再現するには
Xcode 4.6.3 を開く
「Xcode へようこそ」画面で、「新しい Xcode プロジェクトを作成する」を選択します。
[新しいプロジェクトのテンプレートを選択] 画面で、[Mac OS X] -> [アプリケーション] -> [コマンド ライン ツール] を選択し、[次へ] をクリックします。
「Choose options for your new project:」画面で、Product Name: HelloWorld、Type: C -> Next、Use Automatic Reference Counting = False
プロジェクトの場所を選択します。
注: Xcode の設定 -> 場所 -> 派生データで、「相対」を選択しました。
製品メニュー -> スキーム -> スキームの編集に移動します
スキーム編集ウィンドウの左側で、デフォルトで選択されているのは「Run HelloWorld Debug」です。スキーム編集ウィンドウの右側にある [自動的に起動] ラジオ ボタンを [HelloWorld の起動を待つ] に変更しました。Debugger = LLDB、Debug Process As = 私
コードに 1 つ以上のブレークポイントを設定します。
[製品] -> [実行] を選択します (または [再生] ボタンをクリックします)。これで、Xcode のメイン ウィンドウに「HelloWorld の起動を待機しています」と表示されます。
ターミナル ウィンドウを開き、HelloWorld 実行可能ファイルに移動します。私の場合は .../HelloWorld/DerivedData/HelloWorld/Build/Products/Debug/
コマンド ./HelloWord でプログラムを実行します
プログラムが実行され、Hello, World! が出力されます。予想通り、Xcode は「HelloWorld : HelloWorld の実行を終了しました」と表示します。どのブレークポイントでも停止しませんでした。
望ましい動作です。Xcode はブレークポイントで停止し、コードをステップ実行できるようにする必要があります。
助けやヒントをありがとう。