我正在开发一个 C++ 应用程序。我从客户那里得到了一些他说现在生成的核心文件,但不愿意说它们是如何生成的以及他从生成它们中做了什么。
我怀疑他错了,可能是他给了我很久以前生成的转储。
有什么方法可以获取文件的实际创建时间?
我怀疑这些文件可能是在其他一些服务器上创建的,他已经转移了它们。任何人请帮忙。
如果它不在核心文件中,可能是 Unix 有办法知道文件在当前服务器或其他服务器中的实际创建时间。
请帮忙。
核心文件的创建时间不会core(4)
以 Solaris 中的格式显示。
但是,您可以通过查看NOTES
核心部分来做一些事情(自由来救援?)。详情请参阅core(4)
。
首先找到NOTES
段名称(可能note0
或(更有可能)note1
,没有前导点)objdump -x core
该NT_PSINFO
条目包含一个psinfo_t
(see <sys/procfs.h>
) ,它有一个成员pr_start
。这是该过程的开始时间。
同样,生成核心的区域名称也在NT_ZONENAME
条目中。
由于这是char *
一种快速而肮脏的方法,无需解析段,只需转储'n'grep它:
objdump -s -j note1 core | grep ...
(elfdump -n...
听起来很有用,但我无法让它工作)。