作为Linux/Unix用户,我们经常遇到问题。经过长时间的问题解决,我们发展了调试技巧。
现在,在尝试调试通用unix问题时,好的原则、方法或最佳实践是什么?
作为一个普通的用户,我应该有哪些工具来使发现问题的原因变得更容易?
发布于 2010-10-02 10:40:29
方法将取决于问题的类型。
一般来说,EricS.Raymond和Rick的"如何用聪明的方式提问“有时是一个有用的建议,可以集中精力解决问题,并检查您是否考虑过问题的重要部分。
调试期间的第一个信息来源是系统/应用程序写入的日志文件。它们的常见位置是您的终端或/var/log/中的一个文件。许多应用程序支持不同类型的日志级别,如果找不到任何可用的消息,则应该增加这些级别。通常会有一个-v冗长的开关来获取更多的消息。
还是什么都没用吗?检查您的配置文件、应用程序所需文件的权限,也许您必须更改系统记录器的配置,例如/etc/syslog-ng.conf。
如果你有错误信息,谷歌搜索通常会导致留言板条目或usenet帖子讨论其背后的问题。很可能你能在那里找到解决方案。项目用户的邮件列表、留言板和IRC通道也非常有用。
有时,应用程序在没有任何消息的情况下崩溃。除了读取和修改代码之外,还可以使用strace来发现应用程序流。
此工具将跟踪系统调用和信号。当应用程序捕获错误时,仍然可以在系统中发现问题。
另一种方法是使用gdb调试应用程序。你应该是一个高级的用户,并且知道该怎么做,来使用这个。
发布于 2010-10-02 15:52:27
如果您想要一个单一的,一般的调试原则,它将是:了解系统如何工作,尽可能多。了解系统的每个组件,以及每个组件的故障模式。注意您最近更改了哪些组件,以及哪些组件可能已自行更改或失败。
如果你在寻找细节,那么回波的答案有很多好的信息。
发布于 2012-03-20 10:35:58
在我看来,大卫·阿根写了一个关于调试的很好的书。它还包含一组调试指南。
最重要的是,一般(领域)知识和经验对观察模式有很大帮助。研究事物是如何建造的,把它们拆开。进行日常维护。做一些晦涩的实验。读,读,读。做些东西。不断地写。帮助别人解决他们的问题。选择你的战斗。保持冷静。笑一笑。:)
https://unix.stackexchange.com/questions/2619
复制相似问题