c - 多线程服务器中的段错误

标签 c linux multithreading network-programming pthreads

我已经在 Linux(Ubuntu 11.04 64 位内核 2.6.38)下为网络开发多线程服务器(使用 Pthreads)大约 2 个月了。

目前代码大约是 7000 行 C。我一直在多个客户端连接到它并获得服务的网络中使用它。它一直运行得很顺利。

突然间我遇到了一些奇怪的问题。时不时地(大约十分之一)服务器由于段错误而崩溃。我查看了所有代码,但似乎无法找到这背后的真正原因。任何人都可以指导我这里可能出了什么问题或者我应该尝试找到实际错误的哪些事情吗?

最佳答案

  1. 启用核心文件生成。当应用程序崩溃时,加载调试器
  2. 使用带内存检查的 valgrind 运行您的应用程序
  3. 编写单元测试。很多,并将覆盖率提高到 100%。
  4. 使用 valgrind's hellgrind 对您的应用程序进行压力测试测试多线程应用程序

关于c - 多线程服务器中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10181154/

相关文章:

c - 在 C 中遇到数组结构问题

linux - Matlab(Linux): mp4 video loading

linux - 在制表符分隔的数据中查找所有可能的特征组合(列)

ios - 核心数据后台处理仍然阻塞UI

c - 如果一个指针的地址是 64 位,为什么它在打印时显示为 6 个字节?

c++ - 包含另一个 CMake 项目作为库

java - 如何将 Java OpenJDK 1.6.0_36 安装到 CentOS 7.2

c++ - SignalObjectAndWait 考虑有 SetEvent 和 WaitForSingleObject 的目的是什么?

Java 同步和可重入锁定

c - 准备好后不会读取命名管道。 (它确实在gdb内部工作)