有时您会遇到一种称为死锁的状况, 此时系统会停止进行有用的工作。 如果希望在此时提供有用的 bug 报告, 您应按照前述的方式使用 ddb(4)。 清在报告中给出与可疑进程有关的 ps 和 trace 输出。
如果可能的话, 请考虑对问题进行更深入的考察。 如果您怀疑死锁发生在 VFS 层上, 则下列选项会有助于找到问题。 您可以在内核编译配置文件中加入
makeoptions DEBUG=-g options INVARIANTS options INVARIANT_SUPPORT options WITNESS options DEBUG_LOCKS options DEBUG_VFS_LOCKS options DIAGNOSTIC这些选项。 当发生死锁时, 除了 ps 命令的输出之外, 您还应提供 show pcpu、 show allpcpu、 show locks、 show alllocks、 show lockedvnods 以及 alltrace 的输出结果。
对于使用线程的进程而言, 要获得有意义的调用栈内容, 还需要使用 thread thread-id 来切换线程栈, 并使用 where 来显示调用栈。
本文档和其它文档可从这里下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读文档,如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.