red*_*ver 5 linux debugging multithreading valgrind
我需要使用Valgrind来检测服务器应用程序中发生的任何内存访问冲突.服务器创建许多线程.我怀疑有一种竞争条件会导致服务器每1小时左右崩溃一次.我们使用Valgrind分析其内存使用情况,但服务器进程的速度急剧下降.服务器的速度下降太多,以至于几乎无法使用,也没有可能的竞赛条件.
无论如何,与我们的应用程序并行运行Valgrind,所以我们不会失去那么多的性能?
你不能这样做.Valgrind实际上并不是本地执行代码 - 而是在模拟器中运行它.这就是它如此缓慢的原因.因此,没有办法让它运行得更快,仍然可以获得Valgrind的好处.
最好的办法是设置,ulimit以便程序在崩溃时生成核心文件.然后你可以尝试通过检查核心来找出问题所在.