2

ndk 経由でプロジェクトをビルドしましたが、残念ながら Android エミュレーターで実行すると、次のプロンプトでクラッシュします。

[1] + Stopped (signal)        ./secfs secfs-client /data/fuse_dir /data/pwrite/test_11

そして、チュートリアルに従ってプロジェクトをデバッグしましたが、アセンブリ ファイルに行き着きました。また、アセンブリ ファイルを理解するのは簡単ではありません。それで、コアダンプを使うようになりました。しかし、システムがコア ファイルを生成し、gdb でコア ファイルを読み取ろうとすると、次のプロンプトが表示され、gdb が機能しないようです。

 Core was generated by `./secfs secfs-client /data/fuse_dir /data/pwrite/test_11'.
Program terminated with signal 11, Segmentation fault.
#0  0x4001e7f0 in ?? ()
(gdb) bt
#0  0x4001e7f0 in ?? ()
#1  0x4001fdfa in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

結局、次に何をすればいいのかわからないのですが、何かアイデアはありますか? ありがとう

4

1 に答える 1

1

(ブルート) フォースを使用します。コード全体にログ ステートメントを配置し、どこで停止するかを確認します。このようにして、コードのどの部分が SEGFAULT を引き起こしているのかがわかります。アプリケーションを数回実行し、最後のログ ステートメントを確認します。最後のログ ステートメントの直後のコードが問題のコードであると想定しないでください。一部のログ ステートメントがログに表示されないことがあります。これは、テキストの内部バッファリングが原因だと思います。そのため、コードを数回実行する必要があります。

于 2012-06-13T07:55:42.937 に答える