我已经在 Linux(Ubuntu 11.04 64 位内核 2.6.38)下为网络开发多线程服务器(使用 Pthreads)大约 2 个月了。
该代码目前约为 7000 行C
。我一直在多个客户端连接到它并获得服务的网络中使用它。它运行得相当顺利。
突然我面临一个奇怪的问题。时不时地(大约 10 次中的 1 次)服务器由于分段错误而崩溃。我查看了所有代码,但似乎找不到背后的实际原因。任何人都可以指导我这里可能出了什么问题,或者我应该尝试哪些事情来找到实际的错误?
我已经在 Linux(Ubuntu 11.04 64 位内核 2.6.38)下为网络开发多线程服务器(使用 Pthreads)大约 2 个月了。
该代码目前约为 7000 行C
。我一直在多个客户端连接到它并获得服务的网络中使用它。它运行得相当顺利。
突然我面临一个奇怪的问题。时不时地(大约 10 次中的 1 次)服务器由于分段错误而崩溃。我查看了所有代码,但似乎找不到背后的实际原因。任何人都可以指导我这里可能出了什么问题,或者我应该尝试哪些事情来找到实际的错误?
100% 的覆盖率是不现实的,但只要勤奋,85%-95% 就可以合理地发生。
关于为什么会发生奇怪的错误:http: //stromberg.dnsalias.org/~strombrg/checking-early.html
你说这突然发生了。希望您一直在使用诸如 Mercurial、Git 或 SVN 之类的源代码控制系统。如果您有(或者您可能有夜间备份?),您可能应该回顾一下在问题开始时所做的更改,试图找到错误,这可能是未定义的内存引用。