私はLinuxで動作するプログラムを持っています。それは不思議なことにクラッシュしています。私はすでにGDBを使用することがどこでクラッシュするかを知る方法を知っています。しかし、私はそれを再起動するたびに(私はそれをテストしているので、これは多くを行う)毎回それに添付したくないです。これを行う別の方法がありますか?どのようにLinuxのプログラムがクラッシュするのか知るには?
1
A
答えて
5
まず使用ulimit -c unlimited
。
プログラムがクラッシュした後、プログラムがマルチスレッドの場合はcore
、またはcore.<pid>
というコアダンプファイルが見つかります。
あなたはgdb program core
でクラッシュの時点での状態を調べるためにGDBにこれをロードすることができます。
3
あなたは、コアファイル、プログラムがクラッシュした任意の時間をダンプするために、あなたのOSを構成することができます。その後、コアを調べてクラッシュの場所を特定することができます。
4
まずulimit -c unlimited
を行うので、プログラムがコアダンプを残します。 その後、それがクラッシュしたときに、クラッシュの瞬間にプログラムの 状態を読み取るために、コア・ダンプをgdb
を呼び出します。クラッシュしたプログラムがコアダンプを書き込むことができるようにする
2
- >有効GDBフラグを使用してコードをコンパイルします。
GCC <バイナリ名-o> -g < FILE.C>
(これは、C/C++プログラムであると仮定) - >実行withingのGDBを実行します。 gdb <バイナリ名>
この後、クラッシュの場所を見つける方法があります: 1.段階的実行。 2.コードを実行し、(期待どおりに)クラッシュし、gdb内に「どこで」(引用符なし)と入力してバックトレースを指定します。それから、アドレスを見つけることができます。 http://www.cs.cmu.edu/~gilpin/tutorial/
関連する問題
- 1. どのようにプログラムがクラッシュしたかをアンドロイドで確認するには?
- 2. プログラムがサブプロセスでクラッシュしたかどうか調べるには?
- 3. どのように私のプログラムの速度を知るには、コードのどの部分がボトルネックですか?
- 4. Linuxプログラムは、どのように起動されたかを知ることができます:コマンドラインから?またはcronか他の何かによって?
- 5. 特定のカーネルがLinuxベースであるかどうかを知るには?
- 6. Linuxカーネルはブート時にどのドライバをロードするのかをどのように知っていますか?
- 7. LWJGL:オープニングウィンドウによりプログラムがクラッシュする
- 8. どのようにインポートするのか知るには?
- 9. iPad 1のSafariがクラッシュする理由を知るにはどうすればよいですか?
- 10. strcpyの後にCプログラムがクラッシュする
- 11. 私はすぐにプログラムがクラッシュする
- 12. TextInputのクラッシュ - どのようにデバッグするのですか?
- 13. マウスがウィジェット上にあるかどうかはどのように知ることができますか?
- 14. どのようにLinuxのIPルーティングテーブルをルックアップするには?
- 15. 私のプログラムがスワッピングしているかどうかは、どのようにしてlinuxに関する情報を得ますか?
- 16. フレームはどのようにプログラムするのですか?
- 17. プログラムはどのように通信するのですか?マイクロカーネルモノリシックカーネルエクソカーネル
- 18. どのViewControllerが現在アクティブかをどのように知るのですか
- 19. どのように私はLinuxの
- 20. LinuxがPAEモードまたは非PAEモードであることをプログラムでどのように伝えるか?
- 21. どのサーバーに到達する必要があるかをURLがどのように知るのですか?
- 22. 小数点が終了するかどうかはどのように知ることができますか?
- 23. Linuxでプロセスが実行されているPHPスクリプトを知るにはどうすればよいですか?
- 24. Xvfb + firefox:どのようにFirefoxのレンダリングが完了したか知るには?
- 25. NOHZ = OnがLinuxカーネルのdo_timerにどのように影響するか
- 26. TableViewが空であるかどうかはどのように知ることができますか?
- 27. C#プログラムの終了/突然のクラッシュ、どのようにそれを壊す?
- 28. どこで、どのようにLinuxの
- 29. どのGWT要素にフォーカスがあるのかを知るにはどうすればよいですか?
- 30. "標準入力コマンド"をどのように受け取り、プログラムの実行を継続するかを知るにはどうすればよいですか?
はい:ここ
は、GDBに素敵なクイックガイドです。私の部分のタイプミス。私はそれを修正します。 –