TSVモードでの[タブ->空白]変換で落ちるNo.04369
naanfushi さん 09/11/03 12:49
 
【症状】
 TSVモードで[タブ->空白]変換を行うと、何もない正常な場合が多いのですが、時
に、黙ったまま落ちたり、時に、「秀丸のプロセス違反…」とダイアログ表示されて
落ちたり、色々です。
 
 エディタとしては、TSVモードでも変換できた方が良いという立場もありますし、T
SVモードではこうした変換を抑制した方が良いという立場もあり、難しいところです
(過去ログでも「効く」→「効かない」→「効かない」などの仕様変更(詳細を追跡
してないので、誤認があればすいません)などもあったようですが…)。

【再現手順】
1.住所録等、適当なテキスト(1行にタブを5、6個は含む)を開く。
2.TSVモードにする。
3.適当な1行で、タブを複数個含む文字列を範囲選択する。
4.[タブ->空白]を実行する。
5.この時点で、下記の6種の結果になるようです。

 (1)すぐに黙ったまま落ちる
 (2)「秀丸エディタのプロセスで、保護違反が発生しました…」と表示されて落ちる
 (3)カーソルを移動中に上記の(1)または(2)で落ちる
 (4)タブをクリックした瞬間に黙って消える
 (5)[タブ->空白]の[やり直し][やり直しのやり直し]を複数回行うも問題ないが、
その後、突然落ちる
 (6)まったく問題なく作動する
 
 上記、それぞれ複数回の発生を確認しておりますが、残念ながら現状では、確実な
落ちるタイミングや操作手順などは特定できておりません。強調表示など、他の要素
も基因している可能性もあります。再現用のテキストファイルは、5k程度の小さなサ
イズでタブで区切られた項目も10個程度の小さな規模です。
 なお、現在β22段階であり、他の方からの報告もないため、当方のハードに依存や
特殊な操作が影響した症状かもしれません。

 以上、イマイチ再現性が特定できてないままで申し訳ないのですが、一応、ご報告
まで。

[ ]
RE:04369 TSVモードでの[タブ->空白]変換No.04378
秀丸担当 さん 09/11/04 13:02
 

> TSVモードで[タブ->空白]変換を行うと、何もない正常な場合が多いのですが、時
>に、黙ったまま落ちたり、時に、「秀丸のプロセス違反…」とダイアログ表示されて
>落ちたり、色々です。

ご迷惑をおかけして申し訳ありません。
いろいろ試してみているのですが、いまのところ再現できませんでした。

もしdump.txtが出ているというようなメッセージが出ることがあるようでしたら、
dump.txtを送っていただけると原因が分かるかもしれないです。

空白に変換するところのソースコードも確認してみたのですが不明で、症状の現
れ方からすると編集した後のカラム幅の自動調整が関係しているかもしれないと
思いました。
何か特徴的なテキスト内容などが関係しているかもしれません。

もし差し支えなければ、問題の起きるテキストを個人情報が意味の無い形にした
ものがあれば送っていただけるとこちらでも再現できるかもしれないです。
あと、設定内容をファイルに保存したものも送っていただけるとより確実かもし
れません。
内容に差し支えあるかもしれないので、送っていただかなくてもなんとか調査さ
せていただきます。
もし送っていただける場合、"PEH00775@nifty.com"まで秀丸担当宛であることを
書いて送っていただけると助かります。
お手数をおかけして申し訳ありません。

[ ]
RE:04378 TSVモードでの[タブ->空白]変換No.04399
naanfushi さん 09/11/06 08:15
 
 表題の件ですが、当方の環境ではほぼ確実に再現できるようになりました。再現性
の厳密な特定はまだですが、再現しやすい手順はそれなりに特定されましたので、以
下、ご報告致します。なお、当方のハード依存や設定/操作等に基因する特殊ケース
かもしれません。(一応、実施時には常駐系ソフトは可能な限り外しています)

【再現されやすい手順】(WinXPSP3+HM8b23)
●要因の概要
 前提条件として、(1)タブモード、(2)デュアルディスプレイ等、複数のディ
スプレイで動かす場合の方が再現されやすい、(3)なぜか複数のファイルを開いて
いる場合の方が再現されやすい、(4)デュアルディスプレイで再現性が高いが、1
画面でも再現する、などがあります。
●前提条件
 以下、4つのファイルを開きます。開く順にT1〜T4と呼ぶことにします。
 T1〜T3のファイルは普通のテキストファイルで、T2だけが別のフォルダにあります
(関係ないかもしれません)。T4がTSVモードにするテキストファイルで、列は「氏
名\t郵便番号\t住所\t電話場号\tメアド」という極めて単純な構造を持つ50行ほどの
内容です(例えば「海若沢 夏樹\t012-3456\t青森県弘前市若竹町12-3\t(0123)**-4
567\xxxxxxx@mailmail.ne.jp」のような行が50程度。1行目は項目名)。
●再現手順の例
1.プライマリディスプレイ上で、秀丸で順次、4つのファイルを開く。
2.T3,T4を順にセカンダリディスプレイ上に移動させる(2つディスプレイ上にそ
れぞれ1つの秀丸ウィンドウが存在し、それぞれ2ファイルを開いてます。T3,T4の
秀丸は、下記4.での範囲選択領域が画面をスクロールしないといけない程度に横幅
を狭くした方が再現性が高くなるようです)
3.T4をTSVモードに変更する。
4.適当な行で、行頭から電話番号の途中あたりまでを範囲選択する(この時、メニ
ューの「その他」が2段目の左端に来る程度の幅にすると、なぜか再現性が高まるよ
うです)
5.[TAB->空白]変換を実行する
6.範囲選択された状態で、右矢印キー([→])を押す(変換中と思えるくらい速攻
で、変換直後に[→]キー押下を開始すると再現しやすいようです)
 (かなりの確率で、ここで保護違反ダイアログが出る。あるいはT3に急に移動し、
T4タブをクリックすると落ちる。これらが起きない場合は次へ進む)
7.さらに[→]キーを押しっぱなしにしてカーソルを移動させ、上下キーでもカーソ
ルを移動させる。
 (再現し始めると、6.で再現しなくても、7.の後で再現することも多いようで
す)
8.メニューの[その他]をクリックする。
 (確率は低いが、ここで「ポン」と音がして、プルダウンメニューが表示されず、
落ちる。タブは表示されているがクリックするとタブが消える。落ちない場合は次へ
進む)
9.「やり直し」を実行して、変換を元に戻し、再度、3.〜8.を実行する
10.[その他]→[ファイルタイプ別の設定]をクリックする。
 (8.の場合よりは少し高い確率で、「ポン」と音がして消えるか、タブは表示さ
れるが、タブをクリックするとすっと消える)

 以上のように、6.7.8.10.のタイミングで落ちることが多いようです。

 ※ dump.txtは何種類か保存しているようなので、可能であれば送付致します。
 現役マシンでないので、それほど心配はないと思いますが、dump.txtに含まれる情
報は他者に開示しても、昨今の課題であるセキュリティの点で、問題ないのでしょう
か?
 具体的にどんな情報が含まれているか、提示して頂ければ対応し易いと思われます。
同様に「設定ファイル」もお送りした方が解析のお役に立つと思われますが、同様の
懸念があります。具体的な内容がわかると、対応が早くなると思われますので、よろ
しくお願い申し上げます。(Webかヘルプに出力内容を明示されていると、提出する
側も安心でき、また、提出可否の判断も速くなると思われます)

 ※ 再現性のファイルは各種ありますが、一般公開されているもののは「五十嵐 
豪 埼玉県入間市湯山台」でググって頂ければ見つかるデータ(安全を期せば、HTML
版からコピー)を使って頂いても再現が確認されています。とりわけ範囲選択部分を、
6行目にある「海老沢」から始め、伝番号の「017」までの場合に、このデータでは再
現性が高いようです。

 ※ 完全に新規インストールした直後の秀丸では、少なくとも数十回のトライでは
再現が確認されませんでした。で、日常的な状態を読み込むと、再現性がぐっと高く
なりました。と言うことは、ハード面の問題ではなく、どこかの設定が原因と思われ、
少しづつチェックを進めてもらっています。ただ、前提の専門知識はまったく無い私
共がご協力できる限界を、知識面は言うまでもないですが、作業量と作業時間を含め
て超えているようなアップアップ状態ですので…。設定諸ファイルを送付して確認し
て頂くのが近道と思われます。
 セキュリティの問題が世間を騒がせております関係上、包含される情報内容を明示
して頂ければ処理が早いと思われますので、どうかよろしくお願い申し上げます。

 以上、再現すると良いのですが…。


---以下の内容はコミュニテックス会議室システムにより付加されました。
本文中のメールアドレスは伏せ字に変換されました。伏せ字にしたくない場合
はメールアドレスを""で囲んで書き込んでください。

[ ]
RE:04399 TSVモードでの[タブ->空白]変換No.04404
秀丸担当 さん 09/11/06 09:41
 

詳しい情報ありがとうございます。
まだテストできていないのですが、送っていただける場合の件について先にコメ
ントさせていただきます。

dump.txtは、プログラムのコードの情報が含まれていて、個人情報にあたるもの
は基本的は含まれていないです。ただ、ロードされているDLLの場所が分かるので、
もし C:\Documents and Settings\(ユーザー名)\xxxx.dll のようなユーザーのパ
スにプログラムが存在するとしたらユーザー名は分かるかもしれないです。
dump.txtはテキストファイルなので開いてみて確認することができます。もしそ
ういうパスがあったらユーザー名が分からないように消してもらってもかまわな
いです。

設定内容をファイルに保存したものは、レジストリを保存しているだけなのでヒ
ストリ情報も含まれています。
[その他]→[動作環境]→[プライバシー]から、各種ヒストリを全て消去してから
設定内容を保存すると、これらは保存されないことになります。
こういったこともどこかに書いておくようにしようと思います。

ということでお手数をおかけして申し訳ありません。

[ ]
RE:04399 TSVモードでの[タブ->空白]変換No.04413
秀丸担当 さん 09/11/06 12:28
 

>【再現されやすい手順】(WinXPSP3+HM8b23)

全く同じ手順でテストしてみて、再現させることができました。
ありがとうございます。
詳細な手順で本当に助かります。
お手数をおかけして申し訳ありませんでした。
再現率はおっしゃるとおりのような感じのようで、何とか調査させていただきま
す。
再現できたので、設定ファイル等は送っていただかなくてもなんとかなりそうで
す。

[ ]
RE:04413 TSVモードでの[タブ->空白]変換No.04414
秀丸担当 さん 09/11/06 12:54
 

調査して、原因がわかりました。
おっしゃる通りタブ->空白の変換に問題があり、ヒープを壊す場合があって不安
定になってしまっていました。
なるべく早いうちにβ24で修正させていただきます。

[ ]
RE:04414 TSVモードでの[タブ->空白]変換No.04447
naanfushi さん 09/11/13 08:07
 
再現して、本当に良かったです。
 これまで再現性が特定されているファイルなどで再現を試みましたが、現在(WinX
PSP3+HM8b25)のところ再現されておりません。
(β試験への参加なので当然ではありますが、落ちた回数、リブートの回数と時間…。
皆、固く唇を噛みしめ、手を取り合い、目にはうっすらと熱い涙が…、な〜んてこと
はありませんでしたが、再現&修正できて、本当に良かったです……)
(他のツリーにレスしてしまい、申し訳ありませんでした)

[ ]