诊断问题的最佳做法


8

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

现在,尝试调试一般的unix问题时有哪些好的原则,方法或最佳实践?

作为普通用户,我应该拥有哪些工具来使发现问题的原因更加容易?


3
按照要求,这是非常普遍的。我建议限制特定类型的问题(例如无法登录,应用程序无法启动等)。如果您愿意,请问几个问题。它们可能应该是社区Wiki。
吉尔(Gilles)'所以

第一条规则:您有日志,看看吧!
Shadok 2012年

Answers:


8

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

通常,Eric S. Raymond和Rick Moen撰写的“ 如何聪明地问问题 ”有时是一个有用的建议,可以专注于问题并检查您是否考虑过问题的重要部分。

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

还是没用?检查您的配置文件,应用程序所需文件的权限,例如,也许您必须更改systemlogger的配置/etc/syslog-ng.conf

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

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

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

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


3

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

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


2

我认为David Agans写了一本非常不错的有关调试的书。它还包含一组调试准则

最重要的是,一般(领域)知识和经验对查看模式有很大帮助。研究事物的构建方式,将它们分解。执行例行维护。设置晦涩的实验。阅读,阅读,阅读。做东西。不断写作。帮助其他人解决他们的问题。选择你的战斗。保持冷静。微笑。:)


链接断开。请考虑更新它们。
mk..16 /
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.