[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:49566] Re: tcshがセグメンテーション違反



> > オリジナルの .history に対して以下のコマンドを実行してみて
> > 何かエラーは発生しますか?
> > 
> > iconv -f euc-jp -t utf-8 < .history > /tmp/.history.utf-8
> 
>  また再現してしまったので、上記コマンドを実行してみました。
>  エラーはなく、変換されました。

不正な文字がヒストリーに紛れ込んでいるわけではないようですね。

>  履歴をxとxのみに置換したものでも、同様の現象となりました。
> #添付します。

1個だけ 720バイト越えのコマンドがあるようですが、
これがあってもなくても、問題は再現しますか?

>  xとxだけで再現することから、不正文字で異常動作をしているわけでは
> なさそうです。
>  ちょっと文字を追加したり削除するだけで落ちないので、ある条件が重なっ
> たときだけ、コード変換のためのバッファが足りなくなるとかの気がします。

しかも、ja_JP.eucJP 環境でないと再現しないという条件もつくわけですね。

> #utf8環境に移れということでしょうか・・・。

上の iconv コマンドの例は不正文字がヒストリーに紛れ込んでいないことを
確かめたかっただけなので、UTF-8 に移行した方がいいという意味ではありま
せん。誤解されたようでしたら申し訳ありません。

さて、これからの選択肢ですが ... 一見して明らかな原因というのを特定す
るのもどうやら大変そうです。

(a) 問題が再現する条件を特定するためにとにかく頑張る

  o 問題が再現する条件が特定できた場合

  (a-1) バグ報告を投げて修正されるのを気長に待つ
  (a-2) 自分で tcsh を直す
  (a-3) 回避法をみつける

  o 問題が再現する条件が特定できない場合

  (b) あるいは (c) に逃げる

(b) さっさとあきらめて別の環境に乗り換える

  (b-1) tcsh の UTF-8 環境に移行してみる
  (b-2) いっそのこと zsh か別のシェルに移行してしまう

(c) 回避法をなんとかみつける

  (c-1) コマンドラインで日本語を使わない
  (c-2) 短いコマンドを使用する
  (c-3) シェルスクリプトなどを利用して、コマンドラインでの
        編集を、日本語の使用を極力避ける
  ...

もちろん複数の選択肢を同時に試してもよいと思います。

どうもお役にたてなかったようで申し訳ありません。

----
Keni