printf call statck for signal/coredump
2015-10-19 10:31
302 查看
#include<unistd.h>
#include <stdio.h>
#include <signal.h>
#include <errno.h>
void
COOLsighdlr( int sig )
{
int i;
char cmd[256];
char inbuf[256];
FILE *ptr;
printf( "Process received signal %d.n");
sprintf(cmd, "pstack %d", getpid());
if( (ptr = popen(cmd, "r")) != NULL )
{
while( fgets(inbuf, sizeof(inbuf), ptr) != NULL)
{
printf("%s", inbuf);
}
pclose(ptr);
}
else
{
printf("Cannot get stack backtrace errno %d %s\n", errno, strerror(errno));
}
exit( 5 );
}
b() {
pid_t pid;
pid=getpid();
kill(pid,SIGALRM);
while (1) {
sleep (1);
}
}
a() {
b();
}
main () {
signal (SIGALRM, COOLsighdlr);
a();
}
#include <stdio.h>
#include <signal.h>
#include <errno.h>
void
COOLsighdlr( int sig )
{
int i;
char cmd[256];
char inbuf[256];
FILE *ptr;
printf( "Process received signal %d.n");
sprintf(cmd, "pstack %d", getpid());
if( (ptr = popen(cmd, "r")) != NULL )
{
while( fgets(inbuf, sizeof(inbuf), ptr) != NULL)
{
printf("%s", inbuf);
}
pclose(ptr);
}
else
{
printf("Cannot get stack backtrace errno %d %s\n", errno, strerror(errno));
}
exit( 5 );
}
b() {
pid_t pid;
pid=getpid();
kill(pid,SIGALRM);
while (1) {
sleep (1);
}
}
a() {
b();
}
main () {
signal (SIGALRM, COOLsighdlr);
a();
}
相关文章推荐
- 代码块,静态代码块,构造函数调用顺序
- 任务池管理与执行器
- JS代码的加载
- Beans
- jquery插件layer
- Java基本概念:集合类(Collection)List/Set/Map的区别和联系
- 数据结构——查找之二叉排序树
- oracle 定时器
- 开发该选择Blocks还是Delegates
- 关于独立完成已有iOS项目《疯狂食材》总结
- php+mysql分页原理
- [国嵌笔记][021-022][ARM处理器工作模式]
- Github开源项目收藏
- xcode错误:"The application could not be verified."
- XiaoBiuBiu
- 验证码部分的java代码
- 为Wordpress安装WP-PostViews插件
- 【July程序员编程艺术】之链表追赶问题
- FreeSWITCH基本应用
- 洛谷1373 小a和uim之大逃离