作者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