我们正在尝试调查应用程序的内存损坏,并且我们看到的确切问题可以在应用程序的实时内存中看到(即已添加的调试代码显示损坏的信息),但是当我们查看核心时此时获取的转储数据没有损坏。
根据我对核心转储过程的初步理解,这可能是由于操作系统刷新了每个缓冲区、完成了部分写入等等。
任何人都可以详细了解究竟发生了什么,以及是否有办法确定导致腐败的原因?
mprotect() 阻止所有写入,而不仅仅是非拥有进程,这是我们的应用程序具有大量 R/W 访问的数据(并且仅在新机器上存在问题)
我们正在尝试调查应用程序的内存损坏,并且我们看到的确切问题可以在应用程序的实时内存中看到(即已添加的调试代码显示损坏的信息),但是当我们查看核心时此时获取的转储数据没有损坏。
根据我对核心转储过程的初步理解,这可能是由于操作系统刷新了每个缓冲区、完成了部分写入等等。
任何人都可以详细了解究竟发生了什么,以及是否有办法确定导致腐败的原因?
mprotect() 阻止所有写入,而不仅仅是非拥有进程,这是我们的应用程序具有大量 R/W 访问的数据(并且仅在新机器上存在问题)