回答
有linux下的方式,用gdb只得到从核心文件的过程开始时间?
我不这么认为。但是,请参阅core(5) & proc(5)并在您的core
文件上运行file(1)命令。
将来,您可能会使用/proc/sys/kernel/core_pattern
(在系统启动时)。 %t
给出了转储时间(不是开始时间)。
我想你有核心转储可执行文件的源代码(否则,检查核心在实践中不是很有用)。
我建议改善您的长期运行程序的来源,将time(2)的结果放入一个全局或静态变量,在main
开始附近。 您可能还想在您的源代码中添加时间戳。
这里有个窍门让(您的源代码)时间戳,假设你用make
构建和使用git
版本控制:
要么只使用在一些使用__DATE__
和__TIME__
C或C++文件,或者更可能的是附加的生成的包含日期和文件的C文件目前git commit
登录。如果您使用make
随时都在添加一些规则像
_timestamp.c: Makefile
@date +'const char my_timestamp[]="%c";' > _timestamp.tmp
@(echo -n 'const char my_lastgitcommit[]="' ; \
git log --format=oneline --abbrev=12 --abbrev-commit -q \
| head -1 | tr -d '\n\r\f\"\\\\' ; \
echo '";') >> _timestamp.tmp
@(echo -n 'const char my_lastgittag[]="'; \
(git describe --abbrev=0 --all || echo '*notag*') | \
tr -d '\n\r\f\"\\\\'; echo '";') >> _timestamp.tmp
@mv _timestamp.tmp _timestamp.c
您Makefile
(并在规则建立你的可执行文件,而且还_timestamp.o
链接,并在其配方中添加$(RM) _timestamp.c
)。
我建议,对于长时间运行的程序,如服务器(或批量数字代码运行天),用在他们里面syslog(3)设施。一些初始syslog
可能会显示my_timestamp
,my_lastgitcommit
,my_lastgittag
,如上面的_timestamp.c
中所生成的。
谢谢,我正在搜索互联网,也发现它不能只从核心文件完成。我会保持这个开放一段时间,看看别人是否知道如何做到这一点,如果没有答案是增加,那么我会接受你的答案 – Jan
- 1. 获取TypeLoadException开始ASP.Net核心应用
- 2. 获取核心文件
- 3. 在C#中获取核心时间#
- 4. 从textview获取TimePicker开始时间
- 5. 核心数据应用程序在开始时崩溃
- 6. 从开始时间和持续时间获取结束时间
- 7. 获取核心::程序与核心中止
- 8. 从核心数据和关系开始
- 9. 从1.3开始添加Java核心?
- 10. ASP.Net核心 - 从中间件
- 11. 如何获取ASP.NET应用程序的最后开始时间?
- 12. 如何从核心转储获取系统时间?
- 13. 从Node.js启动当前进程开始获取时间
- 14. 从开始和结束时间的时间序列获取数据
- 15. 获取日期开始的时间戳
- 16. 无法从核心数据获取的数据文件
- 17. ASP.net核心:如何从服务中获取文件数据?
- 18. 如何从核心文件获取共享对象构建ID?
- 19. 如何从核心文件获取有关崩溃的信息?
- 20. 从核心数据中获取记录时应用程序崩溃
- 21. 当试图从核心数据中获取数据时,应用程序崩溃
- 22. 获取文件从程序文件
- 23. 如何从数据库获取时间后开始倒计时?
- 24. 从容器应用程序和扩展程序中获取核心数据
- 25. 如何在.Net核心应用程序中读取web.config文件
- 26. 无法读取web.config文件Asp.net核心Web应用程序
- 27. 开始时应用程序崩溃 - 如何获取崩溃转储文件?
- 28. 从核心数据中获取主键
- 29. 从核心数据获取图像
- 30. 从fiddler核心获取图片
长期运行的程序是什么?你有它的源代码吗? –
是的,我有它的源代码。我将添加时间戳以开始未来。然而它不会帮助我使用当前的核心文件。 – Jan