2011-10-26 12 views
4

MacOS LionでXCode 4.2を使用しています。 SimulatorでiPhone/iPadアプリをデバッグするときに、Xcodeツールバーの[Stop]ボタン(Product | Stop)を使用してアプリを終了します。非常に頻繁にこの後、XCodeはmain.mファイルを開き、UIApplicationMainコールに実行ポインタを置き、 "Program received SIGKILL"と言う。その後約1秒でデバッグモードが解除されるため、このエラーをデバッグすることはできません。私のアプリにはたくさんのスレッドが含まれているので、スレッドがまだ動作しているときにリソースが引き出されることに関連していると思われます。これは正常な場合もあります。アプリが終了しているため、この問題については気にしません。しかし、すべてのデバッグ後にこのSIGKILLを見るのは本当に面倒です。どうすればデバッグできますか?あるいは、それを無効にする方法はありますか?XCodeデバッガがStopボタンでSIGKILLで停止する

EDIT:通常のアクティビティログ以外はコンソールに何もありません(通常の例外のようなクラッシュの詳細はありません)。

+1

デバッガは、SIGKILLを送信してアプリを強制終了します。それがあなたがUnixのプロセスを終了させる方法です。何が問題ですか? – hamstergene

+0

問題は次のとおりです。XCodeはこのSIGKILLをデバッガに表示します。同じ方法でブレークポイントを表示し、1秒後にデバッガを終了します。 –

+4

Xcodeのコードウィンドウをmain.mに切り替えると、あなたが見ていた場所から離れてしまいます。 – jrturton

答えて

6

SIGKILLは、デバッガを停止するときにプロセスに送信するものです。間違っていることはありませんが、時にはそれが表示され、main.mファイルに切り替わります。これは無用で迷惑です。

これを回避するには、Xcodeから実行可能ファイルを停止しないでください。実行したままにして、もう一度実行したいときは、「再生」ボタンを押すだけで前のタスクが終了します。まもなく停止とmain.mへの切り替えからのXcode 4を防止するために

+1

これは、基本的にはhttp://stackoverflow.com/questions/6703185/getting-exception-sigkill-when-relaunching-appと同じことですが、どちらもXCodeの処理方法です。まあ、私はそれが好きではありませんが、それは正しいようです。ありがとう。 –

+0

私はそれも好きではありません。私はSIGKILLをデバッガで強調表示が必要なものと解釈するのは間違いだと思います。 – jrturton

0

、あなたは停止ボタンを押す前ブレークポイントボタンをクリックすることにより、デバッグモード(?)をオフにすることができます。あなたは、コードを編集しているときにアプリを停止することを好む場合

0

、1つの回避策は、エディタ領域に「スワイプ左」ことです。これにより、main.cが移動し、以前編集したファイルが開きます。

1

jrturtonの解決策は本当に問題を回避しないようです。私は特に私はNSUserDefaultsを使用してデータを保存することができますので、アプリを停止しています。

私の提案は、デバッガがアプリケーションを監視していないように、実行直後にSTOPを押すことです。その後、あなたは自由にアプリケーションを閉じて、あなたが望むようにそれを開くことができます。これを行うと、私はNSUserDefaultsが正常に保存されていることをチェックすることができました。これは、アプリケーションを強制終了して再び開くたびにデバッガをステップスルーする必要がなくなりました。

関連する問題