4

我正在开发一个 C++ 应用程序。我从客户那里得到了一些他说现在生成的核心文件,但不愿意说它们是如何生成的以及他从生成它们中做了什么。

我怀疑他错了,可能是他给了我很久以前生成的转储。

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

我怀疑这些文件可能是在其他一些服务器上创建的,他已经转移了它们。任何人请帮忙。

如果它不在核心文件中,可能是 Unix 有办法知道文件在当前服务器或其他服务器中的实际创建时间。

请帮忙。

4

1 回答 1

3

核心文件的创建时间不会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...听起来很有用,但我无法让它工作)。

于 2012-05-25T12:44:54.200 回答