2013-07-26 7 views
8

iOSアプリケーションで本当にまれなバグを追跡しようとしていることがあります。私はデバッグ中に(通常は私がC++コードを踏んでいるならば)、xcodeやlldbがクラッシュするだけの時間をかけて、デバッガでヒットします。これは怒りを超えています。iOSに接続されたlldbに手動でコアダンプ(または同等のもの)を生成するには

gdbでgenerate-core-dumpを使ってファイルのコアダンプを作成して、gdbに再ロードして少なくともすべてのメモリを見ることができます。私が望むのは、lldbで何か似たようなことをする能力です。そのため、xcodeがクラッシュすると(常に最悪の場合に起こり易いので)、クラッシュを再現することなくデバッグセッションを回復できます。

アプリはjailbrokenではないiPhoneで実行されているので、そこからメモリをダンプするようなことをするためにOSにあまりアクセスできません。

lldbの代わりにgdbを使用することも可能ですが、私は現時点では覚えていないいくつかの問題を引き起こしていると思いますし、lldbに役立つ機能はいくつかありません。

+0

'イメージダンプセクション 'は、あなたが探しているコマンドですか? [このページ](http://lldb.llvm.org/lldb-gdb.html)を参照してください – borrrden

答えて

12

UPDATE:Xcodeの6は、2014年の秋にリリースさlldbで新しいprocess save-coreコマンドが含まれて - lldbは現在、ユーザー・プロセスのコアダンプを生成することができます。例えば(lldb) process save-core /tmp/corefileと少し待ってください。

Xcodeの5のためのオリジナルの答えとそれ以前のlldb年代であった:

この機能はまだlldbに実装されていません。この点については、Appleのgdbでもこの機能は実装されていません。

一般的に要求されている機能ではありませんが、他の人も同様に有用であると言いました。うまくいけば、誰かがその能力をlldbに加えるのに十分な動機があることを望みます。私は大規模なデータ転送ではそれほど効率的ではないプロトコルを介して、巨大な量のデータがMacに転送されることになるため、iOSデバイスでどれくらいうまく動作するかはわかりません。 。

コアファイルは、それは(あなたがルートを持っているか、それが同じUIDだと仮定するとiOS用のプロセスエクスプローラのツールは、任意のPIDのコアダンプを生成できることは注目に値しますlldb -cを/ tmp /コアファイル

+0

これは今でも成立していますか? –

+1

はい、まだlldbでユーザープロセスコアダンプを生成する方法はまだありません(2014年2月)、今すぐこの機能を実装する作業を行っている人はいません。 –

+1

Xcode 6でMacOS X上のユーザープロセスのコアファイルを保存できるようになるという回答を更新しました。 –

0

で開くことができますあなたに)、プロセスに影響を与えることなく。

関連する問題