2013年(8)
分类: BSD
2013-10-09 09:50:19
前不久,在FreeBSD 9.1,64位下使用mentohust时,出现了一个问题,认证成功后就悲剧了,现象是认证成功后,几秒内能上网,然后便不能上网,非daemon下cirl + c不能退出,daemon下mentohust -k不能退出,只能kill -KILL强制杀掉。
在gdb下,设断点,加打印信息,逐步执行,还是能很快地定位到问题所在,在第一次认证成功后,mentohust会进行一次notify,程序在notify时异常,不是段错误,只是gdb突然便跟踪不下去了,线程混乱了,程序就卡住了,导致接下来维持在线的心跳信息没法发送。由于当时只是想尽快能使用mentohust,所以也就没继续深究是什么原因造成的,因为知道这个,便可以避过这个问题来使用mentohsut。