诊断问题的最佳实践

诊断问题的最佳实践

作为 Linux/Unix 用户,我们经常遇到问题。经过长时间的解决问题,我们培养了调试技能。

现在,在尝试调试一般的 UNIX 问题时,好的原则、方法或最佳实践是什么?

作为普通用户,我应该拥有哪些工具才能更轻松地找到问题的原因?

答案1

方法将取决于问题的类型。

一般来说 ”如何以聪明的方式提出问题埃里克·雷蒙德 (Eric S. Raymond) 和里克·莫恩 (Rick Moen) 撰写的“有时是一个有用的建议,可以帮助您专注于问题并检查您是否考虑过问题的重要部分。

调试期间的第一个信息来源是系统/应用程序写入的日志文件。它们的常见位置是您的终端或/var/log/.许多应用程序支持不同类型的日志级别,如果找不到任何可用的消息,则应该增加日志级别。通常有一个-v详细的开关来获取更多消息。

还是没有什么可以用的吗?检查您的配置文件、应用程序所需文件的权限,也许您必须更改系统记录器的配置,例如/etc/syslog-ng.conf

如果您有错误消息,谷歌搜索通常会导致留言板条目或使用网帖子讨论其背后的问题。您很可能可以在那里找到解决方案。项目用户邮件列表、留言板和 IRC 频道也非常有帮助。

有时应用程序会崩溃而没有任何消息。除了阅读和修改代码之外,还有一个发现应用程序流程的好工具strace

该工具将跟踪系统调用和信号。当应用程序捕获错误时,您仍然可以在 systrace 中发现问题。

另一种方法是使用 调试应用程序gdb。您应该是高级用户并且知道该怎么做才能使用它。

答案2

如果您想要一个单一的、通用的调试原则,那就是:尽可能多地了解系统是如何工作的。了解系统的每个组件以及每个组件的故障模式。请注意您最近更改了哪些组件,以及哪些组件可能已更改或自行失败。

如果您正在寻找具体信息,那么 echox 的答案有很多有用的信息。

答案3

大卫·阿甘斯写了一篇非常好的调试书, 在我看来。它还包含一组调试指南

最重要的是,一般(领域)知识和经验对于观察模式有很大帮助。研究事物是如何构建的,将它们拆开。进行日常维护。进行一些晦涩难懂的实验。读,读,读。做东西。不断地写。帮助其他人解决问题。选择你的战斗。保持冷静。微笑。 :)

相关内容