Ticket #23905

addwords: セグメンテーション違反

Eröffnet am: 2010-12-15 14:09 Letztes Update: 2013-04-07 14:21

Auswertung:
Verantwortlicher:
(Keine)
Typ:
Status:
Offen
Komponente:
(Keine)
Meilenstein:
(Keine)
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Keine
Datei:
1

Details

もう誰もメンテナンスしていないかも知れませんが、一応。 x86_64 で addwords すると、セグメンテーション違反が発生します。

$ echo 'あ #T35 あ' | addwords user

セグメンテーション違反です (コアダンプ)
$
gdb で bt 追うと以下のように見えます。
(gdb) bt
#0  0x00007f1cfcdd62e9 in vfprintf () from /lib/libc.so.6
#1  0x00007f1cfcdd75d0 in ?? () from /lib/libc.so.6
#2  0x00007f1cfcdd237e in vfprintf () from /lib/libc.so.6
#3  0x00007f1cfce75462 in __fprintf_chk () from /lib/libc.so.6
#4  0x0000000000406d82 in ?? ()
#5  0x0000000000401e83 in ?? ()
#6  0x000000000040631a in ?? ()
#7  0x0000000000402cf2 in ?? ()
#8  0x00007f1cfcdaed2d in __libc_start_main () from /lib/libc.so.6
#9  0x0000000000401789 in ?? ()
#10 0x00007fffd4ffe818 in ?? ()
#11 0x000000000000001c in ?? ()
#12 0x0000000000000002 in ?? ()
#13 0x00007fffd4fffb43 in ?? ()
#14 0x00007fffd4fffb4c in ?? ()
#15 0x0000000000000000 in ?? ()
(gdb) 
デバッグオプションを付けて追うと、
#0  0x00007f73213953e5 in __fprintf_chk () from /lib/libc.so.6
#1  0x00007f732165bc17 in T.268 () from lib/canna/libcanna.so
#2  0x0000000000405e5b in RkDefineLine ()
#3  0x0000000000401cdd in ParseFile ()
#4  0x0000000000401e16 in Addwords ()
#5  0x0000000000403c1f in add_main ()
#6  0x0000000000403dc4 in main ()
となりますが、T.268()というのが分からないので、お手上げ気味...

Ticket-Verlauf (3/6 Historien)

2010-12-15 14:09 Aktualisiert von: oku
  • New Ticket "addwords: セグメンテーション違反" created
2012-06-18 16:31 Aktualisiert von: hiroseyuuji
Kommentar

同じ問題でここに来ました。 lib/RK/dd.c line 745 の int tloc; を time_t にすれば直ります。

他にも time_t を利用すべきところでintなのがちょこちょこありますが、 cannaの流儀的にどの宣言に統一すればいいのでしょうね。 ir_time_t と TIME_T があるようですが。

2013-04-05 07:10 Aktualisiert von: oku
Kommentar

TIME_T は lib/RK/tempdic.c 内のローカル利用なので、ir_time_t に揃えてしまうのがよさそうに感じられますね。

時刻を使用するところは素直に #include "IR.h" して、ir_time_t を使えばいいのではないかと。

2013-04-06 17:30 Aktualisiert von: oku
Kommentar

あ〜... プロトコル上の「時刻」と時計の「時刻」をきちんとわけないとマズいですね。どうするのがいいのかな。

2013-04-07 14:21 Aktualisiert von: oku
Kommentar

とりあえず、手元では何とか動くようにしました(Gentoo-13.0 + GCC-4.6.3。他では動かんかも)。 そろそろ canna はやめないとマズいかなぁ。

Dateianhangliste

Bearbeiten

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Anmelden