在CentOS 6.6上编程时,我在屏幕会话中运行时删除了一个可执行文件(呼呼,清理干净).
现在,无关紧要的是,我想让整个过程调试一些东西.我已经重建了可执行文件,但是gcore不接受替换的文件.它知道原始文件已删除,不会让我转储核心文件.
# gcore 15659
core.YGsoec:4: Error in sourced command file:
/home/dev/bin/daemon/destinyd (deleted): No such file or directory.
gcore: failed to create core.15659
# ls -l /proc/15659/exe
lrwxrwxrwx. 1 root root 0 Mar 12 21:33 /proc/15659/exe -> /home/dev/bin/daemon/destinyd (deleted)
# ln -s /proc/15659/exe /home/dev/bin/daemon/destinyd
ln: creating symbolic link `/home/dev/bin/daemon/destinyd': File exists
# rm /proc/15659/exe
rm: remove symbolic link `/proc/15659/exe'? y
rm: cannot remove `/proc/15659/exe': Permission denied
FreeBSD’s gcore有一个可选参数“ executable”,该参数看起来很有希望(好像我可以指定要使用的二进制文件不是/ proc / 15659 / exe),但对我来说毫无用处,因为Linux’s gcore没有任何这样的参数.
有什么解决方法吗?还是只需要重新启动过程(使用重新创建的可执行文件)并等待我跟踪的错误来重现自身?