作者smartboy (小光光)
看板PttCurrent
标题Re: [问题] mbbsd/edit.c 的 seg fault 修好过没有?
时间Mon May 23 09:02:11 2005
※ 引述《[email protected] (lxb)》之铭言:
: ※ 引述《lxb (lxb)》之铭言:
: : 看看 backtrace 一例:
: : #0 0x806b85b in auto_backup () at edit.c:581
: : #1 0x807ebd9 in u_exit (mode=0x80b8292 "ABORTED") at mbbsd.c:155
: : #2 0x807ed50 in abort_bbs (sig=1) at mbbsd.c:198
: : #3 0xbfbfffac in ?? ()
: : #4 0x807ebd9 in u_exit (mode=0x80b829a "AXXED") at mbbsd.c:155
: : #5 0x807edbc in abort_bbs_debug (sig=11) at mbbsd.c:215
: : #6 0xbfbfffac in ?? ()
: : 注意, 以上的 symbol file 不是来自 current 的,
: : 若莫和 Revision 1715 相当.
: 比对以下两页:
: http://bbs.hkday.net/~source/pttbbs/mbbsd/mbbsd.c
: http://opensvn.csie.org/pttbbs/trunk/pttbbs/mbbsd/mbbsd.c
: current ptt 的 u_exit 是有一行
: currmode = 0;
: 而 abort_bbs_debug 则又有一行
: static int reentrant = 0;
: 以及相关的检查, 这在 rev 1715 的时代, 则尚未有之.
static int reentrant = 0;
if (!reentrant) {
reentrant = 1;
这几行从以前就一直都有
上头引出来的 backtrace 现在 ptt 也时常见到,
但注意到那仅是 abort_bbs_debug 呼叫 abort_bbs 一次,
不会第二次, 掉入无穷循环. 因为在第二次遇到 reentrant 检查就会 exit() 了
--
"声音是声音, icon 是 icon, 用 icon 来表示声音的结果,
就是不知道哪个是声音, 哪个是 icon. "
小光光
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.70.142.187