在macOS上移除Process.memory_maps()

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

在psutil 5.6.0版本中,macOS上不再支持Process.memory_maps()方法,因为该方法在某些macOS版本中可能导致OSError或程序崩溃,原因是Apple的未文档化系统调用。由于缺乏有效解决方案,决定彻底移除该方法。

🎯

关键要点

  • 在psutil 5.6.0版本中,macOS上不再支持Process.memory_maps()方法。
  • 该方法在某些macOS版本中可能导致OSError或程序崩溃,原因是Apple的未文档化系统调用proc_regionfilename()。
  • Process.memory_maps()方法在macOS上调用时会引发AccessDenied错误,甚至在root权限下也无法访问其他进程。
  • 由于缺乏有效解决方案,决定彻底移除Process.memory_maps()方法。

延伸问答

为什么在macOS上移除了Process.memory_maps()方法?

因为该方法在某些macOS版本中可能导致OSError或程序崩溃,且缺乏有效解决方案。

Process.memory_maps()方法在macOS上会引发什么错误?

该方法可能引发OSError或导致整个Python进程崩溃。

在什么版本的psutil中移除了Process.memory_maps()?

在psutil 5.6.0版本中移除了该方法。

Process.memory_maps()方法在macOS上有什么限制?

该方法只能访问当前进程或其子进程,调用其他进程时会引发AccessDenied错误。

为什么没有找到有效的解决方案来修复Process.memory_maps()?

因为Apple的proc_regionfilename()系统调用未文档化,且vmmap是闭源的,导致难以调试。

在macOS上,Process.memory_maps()方法的调用会有什么后果?

调用该方法可能导致AccessDenied错误或程序崩溃,影响代码的正常运行。

➡️

继续阅读