我有一个在Linux中运行的程序,它一直在神秘地崩溃。我已经知道了一种方法来知道它在哪里崩溃是使用GDB。但我不想每次重新启动时都附加到它上面(因为我正在测试它,所以要做很多)。有没有其他方法可以做到这一点?如何知道Linux中程序崩溃的地址?
1
A
回答
5
首先使用ulimit -c unlimited
允许崩溃的程序写入核心转储。
程序崩溃后,如果程序是多线程的,您会发现核心转储文件core
或core.<pid>
。
您可以将其加载到GDB中以检查崩溃时的状态,其中gdb program core
。
3
您可以配置您的操作系统以在程序崩溃时转储核心文件。然后,您可以检查核心以确定崩溃位置。
4
首先做一个ulimit -c unlimited
,所以程序会留下核心转储。 然后,当它崩溃时,调用gdb
以及核心转储,以便在崩溃时读取程序的 状态。
2
- >编译启用了gdb标志的代码。
的gcc -o <二进制名称> -g < file.c>(假设它是一个C/C++程序)
- >运行可执行withing GDB。 gdb <二进制名称>
此后有办法找到崩溃位置: 1.逐步执行。 2.运行代码,它崩溃(按预期),在gdb中输入“where”(不带引号)它会给出回溯。从那里,你可以找到地址。
这是gdb的快速指南:http://www.cs.cmu.edu/~gilpin/tutorial/
相关问题
- 1. 不知道为什么程序崩溃
- 2. 如何知道进程是否已在Linux中启动但崩溃
- 3. Vista - 程序崩溃通知
- 4. Bash - 如何知道我的Linux服务器IP地址?
- 5. 本地Java崩溃Linux
- 6. 智能指针如何知道何时释放程序崩溃时的资源?
- 7. 复选框,崩溃的应用程序不知道为什么
- 8. 如何知道堆结束的地址?
- 9. 如何知道我的程序上次运行时是否崩溃?
- 10. 我的应用程序保持崩溃,我不知道如何修复它?
- 11. 应用程序崩溃,不知道为什么
- 12. C程序崩溃,不知道为什么?
- 13. 应用程序崩溃,不知道为什么?
- 14. 如何知道为什么应用程序在模拟器崩溃
- 15. 通知崩溃应用程序
- 16. Android程序崩溃信号11和故障地址
- 17. 获取地址簿权限崩溃应用程序iOS
- 18. 程序崩溃时,我试图找到MAC地址
- 19. 如何知道我的媒体为何在Chromecast上崩溃?
- 20. 程序崩溃
- 21. 本地通知应用程序崩溃,模拟器
- 22. iPhone应用程序崩溃本地通知
- 23. iOS10上的地址簿崩溃
- 24. 线程如何知道共享变量的地址
- 25. 我如何知道Git存储库的远程地址?
- 26. Android类崩溃,不知道为什么
- 27. 使用管道分岔过程中的程序崩溃
- 28. Vista上的SBCL崩溃。你知道如何使它工作吗?
- 29. 只知道MAC地址
- 30. 如何知道使用C,Linux,Socket的服务器的各种IP地址?
是的。我的一个错字。我会解决它。 – 2012-01-05 08:11:44