核心转储未写入 Mac OS Monterey 的 /cores
Core Dumps aren't written to /cores on Mac OS Monterey
我已经为此苦苦思索了一段时间。显然是这样读的:Where are core dumps written on Mac?
这样我们就 100% 清楚了:
我做到了:
touch /cores/x
rm /cores/x
所以写权限是好的。
做过
ulimit -c unlimited
因此应该生成核心。
但即使是微不足道的:
sleep 100 & killall -SIGSEGV sleep
不生成核心。我目前的赌注是 OS 的文件系统保护功能之一让我很伤心。另一种可能性是这与 ARM 有关(运行 on an M1 Max)。
任何想法都非常欢迎......我什至尝试过这个失败:(Mac) leave core file where the executable is instead of /cores?
我目前在 Mac OS 蒙特雷。 https://developer.apple.com/forums/thread/694233?answerId=695943022#695943022 中建议的解决方案对我有用。
快速总结:现在需要为每个可执行文件.
启用com.apple.security.get-task-allow
授权
示例cat
:
先复制一份。必需,因为 cat
在只读文件系统上。
% cp $(which cat) cat-copy
使用 com.apple.security.get-task-allow
权利集创建虚拟 .entitlements
:
% /usr/libexec/PlistBuddy -c "Add :com.apple.security.get-task-allow bool true" tmp.entitlements
File Doesn't Exist, Will Create: tmp.entitlements
使用这些权利重新签署 cat-copy
:
% codesign -s - -f --entitlements tmp.entitlements cat-copy
CrashSelf: replacing existing signature
我已经为此苦苦思索了一段时间。显然是这样读的:Where are core dumps written on Mac?
这样我们就 100% 清楚了:
我做到了:
touch /cores/x
rm /cores/x
所以写权限是好的。
做过
ulimit -c unlimited
因此应该生成核心。
但即使是微不足道的:
sleep 100 & killall -SIGSEGV sleep
不生成核心。我目前的赌注是 OS 的文件系统保护功能之一让我很伤心。另一种可能性是这与 ARM 有关(运行 on an M1 Max)。
任何想法都非常欢迎......我什至尝试过这个失败:(Mac) leave core file where the executable is instead of /cores?
我目前在 Mac OS 蒙特雷。 https://developer.apple.com/forums/thread/694233?answerId=695943022#695943022 中建议的解决方案对我有用。
快速总结:现在需要为每个可执行文件.
启用com.apple.security.get-task-allow
授权
示例cat
:
先复制一份。必需,因为
cat
在只读文件系统上。% cp $(which cat) cat-copy
使用
com.apple.security.get-task-allow
权利集创建虚拟.entitlements
:% /usr/libexec/PlistBuddy -c "Add :com.apple.security.get-task-allow bool true" tmp.entitlements File Doesn't Exist, Will Create: tmp.entitlements
使用这些权利重新签署
cat-copy
:% codesign -s - -f --entitlements tmp.entitlements cat-copy CrashSelf: replacing existing signature