ChinaUnix.net
相关文章推荐:

signal backstrace

1.简单测试(Windows XP平台) def sigint_handler(signum, frame): global is_signal_up is_signal_up = True print 'catched interrupt signal!' import signal signal.signal(signal.SIGINT, sigint_handler) is_signal_up = False while not is_signal_up: pass raw_input('hit to quit...') ==>Assertion OK! 2.交互测试(Windows XP平台) def sigint_handler(signum, frame): global is_sigint_up is_sigint...

by wxPhoenix - Python文档中心 - 2007-04-27 17:18:31 阅读(1807) 回复(0)

相关讨论

signal安装的信号处理函数,如果要处理程序内的变量,一般用什么方法? 把变量设成全局嘛?

by jack9981 - C/C++ - 2007-02-26 13:16:20 阅读(1463) 回复(2)

早期的signal是unreliable的,一个进程在终端和陷入处理的末尾察看自己是否收到信号,并处理已经接收到的信号,因此信号是unreliable的 现在的signal是reliable的,那么他是通过什么方式实现的呢??signal相当于软中断,那么它是通过什么方式在一个进程接收到信号的时候就中断这个进程的处理,转而处理信号呢??? 早期的signal中,低速的系统调用会被一个signal中断,那么现在的signal会吗??

by fxhnkf - C/C++ - 2005-03-29 11:01:29 阅读(1037) 回复(8)

在aix5.1上运行程序,发生若干次中断,程序中断时报出signal 40。 可是从signal 40 系统只是提示它是一个bad trap.没有更多信息。 哪位大侠遇见过这种问题,有何办法?

by zzy28 - AIX - 2004-06-18 13:33:26 阅读(936) 回复(0)

我们设备上现在出现一个关键应用不太稳定的问题,而且现象比较随机,所以想用backtrace在SIGSEGV的信号callback函数里加入backtrace调用,来打印相应的调用栈,看看程序死在哪里。 现在的情况是,在我写的一个测试程序里,如果我写个*p=NULL;*p=1;这个backtrace是能正常把段错误的相应调用栈打印出来。可是一旦到了我们那个关键应用,同样的代码就打印不出来了。非常郁闷。 现在怀疑点有两个,一个是编译参数有问题,知道一个-fom...

by gerysand - C/C++ - 2006-08-16 11:44:05 阅读(5008) 回复(7)

我在用源码安装mysql 5.1.38 configure make make install 全部通过。 在运行bin/mysql_install_db --user=mysql 时出现以下错误: 090907 8:34:30 - mysqld got signal 11 ; This could be because you hit a bug. It is also possible that this binary or one of the libraries it was linked against is corrupt, improperly built, or misconfigured. This error can also be caused by malfunctioning hardware. We will ...

by mysqlkiki - MySQL - 2009-09-07 20:22:32 阅读(2689) 回复(3)

举个例子 int main(){ signal(SIGINT,sig_int)......... while(1){ ................... ................... } } 首先我知道siginal函数的作用是 程序正在前台运行,你又突然按了下ctrl+c 强制退出,那么程序正在运行 的时候可能就被干掉了。而 trap 或者siganal 函数就可以让你在某种不正常退出的情况下,再调用你指定的函数,可以做些清理工作啊什么的。 但是我想...

by bladmin - C/C++ - 2009-04-13 11:29:53 阅读(2545) 回复(7)

#include <signal.h> void (*signal (inst i g n o, void (*f u n c)(int))) (int); 返回:成功则为以前的信号处理配置,若出错则为S I G E R R 例如: ................. if(signal(SIGINT,sig_int)==SIG_ERR) err_sys("can't catch the SIGINT"); ............ 请问上述语句怎样理解 为SIGINT安装处理函数,如果成功捕捉该信号则执行sig_int函数,如果不成功,报错退出。 那么通过signal函数...

by tianhailong - C/C++ - 2009-03-13 12:40:35 阅读(6504) 回复(4)

1. 信号古老而陈旧,编写正确的信号处理程序不简单,因为可重入这样的问题。 2. 多线程环境下,信号基本上不适用 3. Unix定时器基于信号机制,所以在多线程环境下都不怎么好用 4. 信号是接收某些通知的唯一方法,也是Unix结束进程、管理父/子进程关系的方式,所以信号机制也是不可或缺的 5. 现在很多人仍然在用signal()和kill()使用信号,而不是使用更加健壮和现代的sigaction()、sigqueue()系统调用 6. 据说Linux将来可能会使...

by 雨过白鹭洲 - C/C++ - 2010-02-28 10:41:04 阅读(4726) 回复(23)

void (*signal(int signo,void(*func)(int)))(int); 我说下我的想法 我是这样看的 void (*signal(xx))(int) 那么说明 signal(xx)这个整体是一个函数指针 那么接下来怎么理解呢?

by wilbur512 - C/C++ - 2008-08-21 19:26:39 阅读(2018) 回复(9)

我有一个程序abc在运行,有另外一个minitor在监测,如果发现abc死掉,则重新启动abc。 另外monitor也可能会主动把abc杀掉重新启动。monitor程序是别人写的,由于种种原因,我无法拿到源代码。 现在的问题是在2个客户那儿频繁发生abc被重启的现象,严重影响使用。在测试环境则从来没有发生过类似问题,其它的100多家客户也没有发生。如何判断是abc自己死掉还是被monitor杀死的? abc是一个daemon,自己不会主动退出,除非收到了si...

by caijimin - C/C++ - 2008-02-02 12:04:23 阅读(1965) 回复(8)