在某些应用程序的开发过程中,我们需要可能获得完整的核心转储而不完全停止程序的执行。来自C/C++程序的内联核心转储生成
当然,有些情况会产生核心转储,但是我们并不是在谈论内存损坏等问题。
我所希望做的是发出一个信号,该程序并没有产生一个完整的核心或最小冲击程序执行
这可能吗?如果是这样如何?
在某些应用程序的开发过程中,我们需要可能获得完整的核心转储而不完全停止程序的执行。来自C/C++程序的内联核心转储生成
当然,有些情况会产生核心转储,但是我们并不是在谈论内存损坏等问题。
我所希望做的是发出一个信号,该程序并没有产生一个完整的核心或最小冲击程序执行
这可能吗?如果是这样如何?
看到这个谷歌图书馆,它可能会帮助:http://code.google.com/p/google-coredumper/
的coredumper库可以被编译成应用程序来创建运行程序的 核心转储 - 不终止。
哇。好一个。 – 2012-11-21 19:11:36
Coredumpber是Linux,显然,如果这是你的操作系统一个伟大的想法。
对于其他类POSIX系统中,这样的事情应该很好地工作:
#include <stdlib.h>
#include <process.h>
// Fork and abort for a core dump. This process keeps running.
if (fork() == 0) abort();
当然环境必须设置倾倒在SIGABRT
核心。你也可以尝试raise(SIGTERM)
,就像kill -9
。
我想你是指'raise(SIGKILL)',但我明白了 – Karlson
这是操作系统特定的。什么OS? – Gene
你可以'fork'然后'放弃'另一个进程。 –
核心转储是什么意思?完整的内存转储?堆栈跟踪? – 2012-11-21 19:09:54