最近私は理解できないエラーに遭遇しました。私がCocos2Dを使用して開発しているゲームは、あるランダムな点でフリーズします。それはSIGSTOPを取得します。理由を見つけることができません。エラーの発生場所とその原因を調べるために、どのツールを使用できますか(どのように使用すればよいですか)。ゲームがフリーズする原因となる場所とエラーを見つけるためのデバッグ方法
答えて
Jeremy's suggestionデバッガで停止するのは良い方法です。
特に簡単に再生できない場合は、フリーズ(またはパフォーマンスの問題)を調査するための非常に迅速な方法があります。便利な端末を用意する必要があります(iOSデバイスではなく、iOSシミュレータまたはMac OS Xで実行する必要があります)。ハングが端末にポップオーバーが発生し、実行
:(。あなたのプログラム名ラップにスペースsample "My Awesome Game"
のような引用符でそれがある場合)
sample YourProgramName
をsample
の出力はあなたを示すログですプログラムが時間を費やしていて、あなたのプログラムが実際にハングアップしているのであれば、どの機能が止まっているのかははっきりしています。
上記のAaron Golden's answerとデバイスでの実行は、アプリがフリーズする実際のシナリオを持つためには非常に便利です。シミュレータにメモリがあり、の場合は正確な方法でデバイスのハードウェアを再現しません(たとえば、フレームレートが一定以下の場合など)。
「明らかに」デバイス(開発者プロファイル付き)をXcodeに接続し、コンソール端末で@AaronGoldenが提案したトレースを探す必要があります。
これらが十分でない場合、Xcodeで一般的な例外ブレークポイントを有効にして、より多くのスタックトレースメッセージをキャプチャできます。
私はCocos2Dの学習を始めたときに、自分のアプリが頻繁にフリーズします。これは、一般的な原因のリストです:
- 私はスプライトシートを使用していなかったので、フレームレートは、私はあまりにも多くのメモリ(あまりにも多くの高精細スプライトを使用していたdrammatically
- を落としたを見てください。 TexturePackerとpvr.cczまたはpvr.gz形式を使用します。それは半分にメモリ割り当てをカット)
を使用instrumentsメモリの警告のためにアプリをプロファイリングするために(例えば、割り当ての楽器を見て、メモリの警告を探してください)。
なぜ私の名前を恐怖の引用符に入れましたか? とにかく、OPは要求に応じて問題を再現することができないと思われます。そして、バグ*この*時間を打ち負かすような場合に備えて、毎回楽器で実行するのが楽しいかもしれません。だから、私はちょうどターミナルに切り替えてサンプルを実行する準備ができていると言いました。 OP *が問題を確実に再現できる場合は、Instrumentsは適切な方法ですが、なぜ割り振りツールを提案しましたか?確かに、時間プロファイラーは、一般的なハング/スローネスの問題に最も適したツールです。 –
私はあなたが言うように、すべてのスプライト(pvr.ccz)にテクスチャパッカーを使用します。あなたが言ったことを試してみよう!返信ありがとう、本当にそれを感謝します。 – Allan
アプリケーションがフリーズすると、「システムの過負荷」が原因でメモリ割り当てが影響を受ける可能性がありますが、間違っている可能性があると考えられます。 – mm24
- 1. mysql構文エラーの原因となるファイルを見つける方法
- 2. アプリケーションがクラッシュする - クラッシュの原因を見つける方法
- 3. タイムアウトの原因となるソケットを見つけますか?
- 4. VBAエラー '91' - エラーの原因を見つけることができません
- 5. Pythonでエラーの原因を見つける方法大きなオブジェクトのPickle
- 6. コアダンプファイルの原因となったプログラムを見つけよう
- 7. ConnectionResetの原因を見つける
- 8. フローエラーの原因を見つける
- 9. DatabaseObjectNotClosedExceptionエラーの原因を見つけることができません
- 10. React Warning.js - エラーの原因となったコードの場所を特定する方法は?
- 11. 私のサイトがフリーズする原因となるいくつかのjqueryコード
- 12. NodeJSでEHOSTUNREACHの原因を見つける方法は?
- 13. Androidのメモリリーク(アクティビティ)原因を見つける方法
- 14. VS2015ビルド "最新の"原因を見つける方法
- 15. CannotUnloadAppDomainExceptionを引き起こす原因となるスレッドを見つける
- 16. Rエラーが発生した場所を見つける方法は?
- 17. ノックアウトの周期的なエラー - 原因を見つけるためのアドバイスが必要
- 18. 予期しない入力エラー終了のエラーの原因を見つけることができません
- 19. 大きなヒープサイズの原因を見つけて修復する
- 20. winston - ノードプロセスがクラッシュする原因となるエラーを記録する方法
- 21. getJSONエラーハンドラとその原因となったクエリを関連付ける方法
- 22. 不完全な実装の原因を見つけるための素早い方法警告
- 23. エラーの原因となるアレイのCin
- 24. エラーの原因となるmysqlのトリガー
- 25. NoReverseMatchエラーの原因となるもの
- 26. ブラウザの同期がサーバーエラーの原因となるのを避ける方法
- 27. 「シンボルを見つけることができません」の原因とその修正方法
- 28. リンカエラーの原因となるエラー
- 29. 起動エラーの原因となるCSS3Pie
- 30. Laravel - 404エラーの原因となるイベント
デバッガの一時停止ボタンを押して、デッドロックの可能性があるかどうかを確認します。 – Jeremy