从核心转储中获取创建时间

4

我正在开发一个C++应用程序。

客户给了我一些核心文件,他说这些文件是最近生成的,但不愿透露生成方式和具体操作。

我怀疑他说错了,可能是他给了我很久以前生成的dump文件。

有没有方法可以获取文件的实际创建时间?

我怀疑这些文件可能是在其他服务器上生成并转移过来的。

请帮忙解决问题。

如果核心文件中没有记录,Unix系统是否有方法可以查看当前服务器或其他服务器上文件的实际创建时间。

请求帮助。


我认为Solaris崩溃分析工具可能会有所帮助?https://blogs.oracle.com/solariscat/entry/oracle_solaris_crash_analysis_tool - BoBTFish
1个回答

3
核心文件的创建时间在Solaris中不以core(4)格式显示。
但是,您可以通过查看核心文件(使用libelf)的NOTES部分来做一些事情。有关详细信息,请参见core(4)
首先,使用objdump -x core查找NOTES段名称(可能是note0或(更可能)note1,没有前导点)。
进程启动时间 NT_PSINFO条目包含一个psinfo_t(请参见<sys/procfs.h>),其中包含一个成员pr_start。这是进程的启动时间。
区域名称
类似地,生成核心文件的区域名称在NT_ZONENAME条目中。
由于这是char *,因此一种快速而简单的方法是直接转储并搜索:
objdump -s -j note1 core | grep ...

听起来像是个很有用的命令(elfdump -n...),但我无法让其运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接