2

arm+Linuxプラットフォームでのプロセスのデバッグに問題があります。

これはCAPWAPプロトコルで動作するデーモンプロセスであるため、別のリモートプロセスと継続的に通信します。セグメンテーション違反でクラッシュした場合、私の通常のデバッグ方法はprintf、を介してログ出力を追加し、プロセスがクラッシュした場所を見つけることですが、あまり効率的ではありません。

この問題をデバッグする他の方法はありますか?

4

2 に答える 2

3

また、 core(5)ダンプを有効gdbにして、そのコアで事後分析を使用することもできます。

  gdb yourprogram core

コアダンプを有効にするには、通常は親プロセス(シェルなど)で、を使用してsetrlimit(2)システムコールを呼び出す必要があります。RLIMIT_COREulimit

gdbところで、あなたはまた、を使用してあなたのプログラムを開始することができます

  gdb --args yourprogram argtoyourprogram

プログラムをでコンパイルすることを忘れないでくださいgcc -Wall -g。オプションはほとんどすべての-Wall警告を出し(非常に便利)、-gデバッグ情報を生成します。

于 2013-03-20T06:25:57.287 に答える
0

この場合のデバッグには2つのオプションがあります。

  1. GDBデバッガーを使用してプログラムをデバッグします。GDBを使用して、プログラムにブレークポイントを設定できます。

  2. セグメンテーション違反のデバッグにはAndroid-ndkを使用してください。この種のデバッグは、エラーの正確な場所を提供できます。

于 2013-03-20T03:57:07.153 に答える