2010-12-20 145 views
0

我们试图调查应用程序上的内存损坏,我们看到的确切问题可以在应用程序的实时内存中看到(即已添加的调试代码显示已损坏信息),但是当我们仔细查看在这一点上获得的核心转储时,数据没有发生损坏。实时内存不匹配核心转储内存

根据我对核心转储过程的基本理解,这可能是由于操作系统刷新了每个缓冲区,完成了部分写入操作等。

任何人都可以详细了解究竟发生了什么,如果有反正确定是什么导致腐败?

的mprotect()阻止所有写操作,而不仅仅是非所属的过程,这是由我们的应用程序有很多的R/W访问(并且只对新机器的问题)

+0

转储是否与调试代码或不同发行版本具有完全相同的可执行文件? – OrangeDog 2010-12-20 14:15:09

+0

完全一样,它是一个运行在Java – 2010-12-20 14:26:45

+0

上的Websphere应用程序哦,您可能必须提供更多的环境细节,因为Java代码无法自行创建内存损坏。 – OrangeDog 2010-12-20 15:31:25

回答

0

原来是数据RHEL4及其运行的内核,客户使用最新的内核升级到RHEL5,问题消失