grepがフリーズしますNo.10452
sshg さん 01/11/28 11:43
 
Win2000で秀丸エディタv3.08、v3.10を使っていますが、50文字超(サブフォルダを含
めるとたぶん60〜70文字)の長いパスの下でgrepを実行すると、検索途中で頻繁にフ
リーズしてしまいます。
パスの長さに制限等あるのでしょうか?

[ ]
RE:10452 grepがフリーズしますNo.10459
秀丸担当 さん 01/11/28 16:36
 
>Win2000で秀丸エディタv3.08、v3.10を使っていますが、50文字超(サブフォルダを
>含めるとたぶん60〜70文字)の長いパスの下でgrepを実行すると、検索途中で頻繁に
>フリーズしてしまいます。
>パスの長さに制限等あるのでしょうか?

パスの長さは260文字という制限がありますが、50文字くらいなら
制限ではありません。
もし差し支えなければ、フォルダの名前がどんなかんじになっている
か教えていただけないでしょうか。
grep時のオプション(「サブフォルダも検索」など)も教えていただ
けると助かります。
あと質問ばかりで申し訳ないですが、フリーズとは秀丸だけが反応
しない状態なのか、システム全体がフリーズしているのか、どうい
った状態でしょうか。
よろしくお願いします。

[ ]
RE:10459 grepがフリーズしますNo.10468
sshg さん 01/11/29 01:25
 
>もし差し支えなければ、フォルダの名前がどんなかんじになっている
>か教えていただけないでしょうか。

grepの開始時点でだいたいこんなところを指定しています。
c:\wince300\platform\pfm_ds6d\drivers\serial\serial\

WinCE Platform Builder 3.0がインストールしてあるところで、
パスはすべて半角アルファベットです。
この下にまだ4〜5階層位あったと思います。


>grep時のオプション(「サブフォルダも検索」など)も教えていただ
>けると助かります。

「サブフォルダも検索」だけをONにしています。あとは全部OFFです。
検索対象ファイルは、*.c;*.cpp;*.h;*.hpp;*.srcとしています。
(これに該当するファイルは数百存在していたと思います。)


>あと質問ばかりで申し訳ないですが、フリーズとは秀丸だけが反応
>しない状態なのか、システム全体がフリーズしているのか、どうい
>った状態でしょうか。

grep検索結果表示画面と、そのとき一緒に表示されるダイアログボックス
だけが固まっているような感じで、検索途中で「検索済みファイル数」
がカウントされなくなり、「grepの中断」も押せなくなります。
そのとき、同時に起動している他の秀丸エディタは問題無く使えますし、
ウィンドウを終了させることも出来ます。システムも問題ありません。
検索結果表示画面だけがどうにも出来なくなり、そのうちシステムから
「このプラグラムは応答していません」メッセージが出ます。

あと他に分かったことなんですけど、他のWin98マシンにインストール
してある秀丸エディタから、NetBEUI経由でこのマシンに対して同じ
検索をしても、同様にWin98上の秀丸エディタがフリーズします。
(Win2000マシン上では、"c:\wince300"フォルダ以下を共有設定
しています。)

以上、よろしくお願いします。

[ ]
RE:10468 grepがフリーズしますNo.10469
sshg さん 01/11/29 03:27
 
>>もし差し支えなければ、フォルダの名前がどんなかんじになっている
>>か教えていただけないでしょうか。
>
>grepの開始時点でだいたいこんなところを指定しています。
>c:\wince300\platform\pfm_ds6d\drivers\serial\serial\
>
>WinCE Platform Builder 3.0がインストールしてあるところで、
>パスはすべて半角アルファベットです。
>この下にまだ4〜5階層位あったと思います。

訂正。半角アルファベット以外に半角数字、アンダーバーがありますね。
あと、この下には正確には最大7階層あります。

更にもう1つ、同じ場所からtagsファイルの作成を行った場合に
ついては(サブフォルダを含む)、特に問題ありません。
対象ファイルは*.c;*.cpp、ルールは「C言語の関数一覧」を選んでいます。

[ ]
RE:10469 grepがフリーズしますNo.10484
秀丸担当 さん 01/11/29 18:50
 
>>grepの開始時点でだいたいこんなところを指定しています。
>>c:\wince300\platform\pfm_ds6d\drivers\serial\serial\

詳細にわたってありがとうございます。
とりあえずフォルダ構成を同じようにして、やってみましたが再現
できませんでした。
たぶんフォルダの深さではなく、ある特定のファイルの読込み
に失敗しているのかもしれません。
もしそうである場合、ファイルが特定できるとよいのですが…

[その他]→[動作環境]→[編集]→[文字コードの自動認識をする]
を無効にすると、grep時のファイルの読込みの文字コード解析
がされなくなるので変化があるかもしれません。
V3.08をお使いの場合は、JISコードの解析にバグがあり、フリー
ズではなく、エラーで終了することがあります。
V3.10ではJISコードの解析のバグは修正されています。
最新版のV3.11では、grep時にフォルダのオープンを解放しない
場合がある問題が解決されています。

[ ]
RE:10484 grepがフリーズしますNo.10502
sshg さん 01/11/30 15:46
 
調査ありがとうございます。

>たぶんフォルダの深さではなく、ある特定のファイルの読込み
>に失敗しているのかもしれません。
>もしそうである場合、ファイルが特定できるとよいのですが…

怪しいファイルといえば、行によって改行コードが1バイトコード
だったり、2バイトコードだったりするファイルがあるんですけど、
特定のファイルを検索した時点で落ちている、っていうわけでも
ないみたいです。
今のところ、検索途中で「応答がありません」になる確率は50%位です。
フリーズしない場合は、やはり途中で止まっているような感じに
なるんですけど、そのまま1〜2分放置すると検索再開します。
特に重いアプリが他に動いている訳でもないんですが…。


>[その他]→[動作環境]→[編集]→[文字コードの自動認識をする]
>を無効にすると、grep時のファイルの読込みの文字コード解析
>がされなくなるので変化があるかもしれません。

確認してみたところ、これは無効になっていました。
検索対象ファイルはほとんどがASCII文字のみで書かれており、
S-JISが使ってあるファイルがたまにある位です。
EUCその他は無かったと思います。


>V3.08をお使いの場合は、JISコードの解析にバグがあり、フリー
>ズではなく、エラーで終了することがあります。
>V3.10ではJISコードの解析のバグは修正されています。
>最新版のV3.11では、grep時にフォルダのオープンを解放しない
>場合がある問題が解決されています。

了解しました。機会をみてv3.11を試してみます。
どうもありがとうございました。

[ ]
RE:10502 grepがフリーズしますNo.10503
ひろ さん 01/11/30 18:59
 
 sshg さん今日は、ひろです。横から失礼します。
 hidesoft.2:10468 にて
> あと他に分かったことなんですけど、他のWin98マシンにインストール
> してある秀丸エディタから、NetBEUI経由でこのマシンに対して同じ
> 検索をしても、同様にWin98上の秀丸エディタがフリーズします。
とのことですので、いわば特定のフォルダでのみ起きるんですよね。ひょっ
として、不良セクタがあるということはないでしょうか? もしそれが原因な
ら、スキャンディスクをかけ、修復すれば改善されるのではないでしょうか。

[ ]