0.73beta ExceptionNo.03527
"M.OBARA" さん 01/01/25 15:13
 
 こんにちは、小原です。

 急に鶴亀がエラーメッセージを表示し、終了してしまいました。

 常駐しており、鶴亀には一切触れていませんでした。他のアプリから他の
アプリへ切り替えたときでした。
 定期受信はONに設定しています。

********** 01/01/25 14:52:47 0.73beta  Exception
eax=006DF664 ebx=BFFCA080 ecx=0E55004E edx=006494C4 esi=006DF6BC
edi=02020E1A ebp=BFF7B292 esp=FFFFFFFE eip=006DF6BC
FramePtr ReturnAd Param#1  Param#2  Param#3  Param#4  Param#5
Param#6  Param#7  Param#8  Param#9  Param#10 MachineCode
8B5B5E5F 18C25DE5 448B5500 EC8B1024 8304E883 458904EC 575653FC
FF08758B 56500C75 FFEF08E8 75C085FF EBC03304

[ ]
RE:03527 0.73beta ExceptionNo.03543
秀まるお さん 01/01/25 19:20
 
>  常駐しており、鶴亀には一切触れていませんでした。他のアプリから他の
> アプリへ切り替えたときでした。

 実はこれと同じバグを、とある方から2回受けています。Alt+Tabでウィンドウを
切り換えた時だうそな。

 困った困った。

[ ]
RE:03543 0.73beta ExceptionNo.03548
Kengo さん 01/01/25 19:53
 
> >  常駐しており、鶴亀には一切触れていませんでした。他のアプリから他の
> > アプリへ切り替えたときでした。
>
>  実はこれと同じバグを、とある方から2回受けています。Alt+Tabでウィンドウを
> 切り換えた時だうそな。

たぶんその本人ですけど。

turukame.1:00899| RE 00874 【不具合】勝手にインデントほか
あたりの件がからんでませんか?

dump.txtを出す機能が付いてから、鶴亀メールがらみでこのエラーを
見たことがないです。
#秀丸ではあります。

原因は同じだけれども、行数MAXエラーが出る代わりにそれを捕まえて
dump.txt吐いて落ちるようになったとか。

http://hidemaru.xaxon.co.jp/software/tkhist.html
によると、

2000/11/25 V0.47 -> V0.48
で「行数MAXエラーのバグ修正」、
2000/12/10 V0.55 -> V0.56
で「dump.txt」だそうですが…… どうなんでしょう?

[ ]
RE:03548 0.73beta ExceptionNo.03563
秀まるお さん 01/01/26 09:56
 
> 原因は同じだけれども、行数MAXエラーが出る代わりにそれを捕まえて
> dump.txt吐いて落ちるようになったとか。

 もしかしてそうなのかも?。

 行数MAXエラーのバグ修正とありますが、実際には詳しい原因究明をせずに、とり
あえず直ったということになっています。

 プログラマー向けの話をさせていただくと、秀丸内部で行数MAXを検出した場合、
その場で即座にエラーメッセージを表示することが出来ないため、とりあえず自分に
WM_ERROR_LINES_MAXメッセージをPostします。そのWM_ERROR_LINES_MAXメッセージを
受信したら、エラーメッセージを表示する作りになっています。

 そのWM_ERROR_LINES_MAXは、

#define WM_ERROR_LINES_MAX (WM_USER + 13)

 となっていました。

 ところが、なぜか行数MAXが発生したわけでもないのにこのメッセージが届く症状
が発生していたのが、昔のバグです。

 それで、どうやって直したかと言うと、

    (WM_USR + 13)  -->   (WM_USER + 57)

 に変更しただけです。でもって、結局の所、誰がWM_USER+13をPostしていたのかは
分からずじまいです。

 っと長く説明してしまいましたが、もしこのWM_USER+13がPostされることと関係し
たバグだとしたら、とりあえず昔の「行数MAXです」が意味もなく出る状態に戻すこ
とで死ななくなるかもしれないです。

 ってことで、とりあえず次の鶴亀V0.74でそうしてみます。

[ ]
RE:03563 0.73beta ExceptionNo.03573
Kengo さん 01/01/26 12:43
 
>  プログラマー向けの話をさせていただくと、秀丸内部で行数MAXを検出した場合、
> その場で即座にエラーメッセージを表示することが出来ないため、とりあえず自分に
> WM_ERROR_LINES_MAXメッセージをPostします。そのWM_ERROR_LINES_MAXメッセージを
> 受信したら、エラーメッセージを表示する作りになっています。

なるほど。

>  に変更しただけです。でもって、結局の所、誰がWM_USER+13をPostしていたのかは
> 分からずじまいです。

WM_USER+13 ってことで少し調べてみました。

Spy++で秀丸や鶴亀メール(エディタ)のプロセス・スレッドの
メッセージを監視するようにして、Alt+TABで切り替えると、
アクティブになる時・非アクティブになる時に、WM_USER+13が
届いています。
#「非アクティブになる時」は、いつもではないようです。
#他に、WM_USER+4,5,14なんかも届いています。

「プロセス・スレッドのメッセージ」なので、秀丸や鶴亀メール
自体のウィンドウ宛てとは限りません。
なので、「どのウィンドウへか?」を調べようとしたら、
どうも一時的に作成されているウィンドウのようで、
Spy++をアクティブにした時には消えていて、調べられません
でした。
#非アクティブになるタイミングでDestroyしているようです。

怪しいのが、IMEです。私のところはMS-IME2000なのですが、
IMEのツールバーを表示しないようにしたら、WM_USER+13は
届かなくなりました。

というわけで、IMEがポストしていると仮定して。

正常な状態であれば、IMEが自分で作成したウィンドウへ
WM_USER+13を投げても問題はないはずですが、それが何かの
原因で秀丸・鶴亀メールのウィンドウへ投げられてしまうと、
「行数MAX」になってしまうでしょう。
#つまり「MS-IME2000が悪い」説。

が、

>     (WM_USR + 13)  -->   (WM_USER + 57)

にしたのなら、WM_USER+13がポストされても何もしないだけで、
ぜんぜん問題ないはずですよね……?

[ ]
RE:03563 0.73beta ExceptionNo.03574
"M.OBARA" さん 01/01/26 13:04
 
>  そのWM_ERROR_LINES_MAXは、
>
> #define WM_ERROR_LINES_MAX (WM_USER + 13)
>
>  となっていました。
>
>  ところが、なぜか行数MAXが発生したわけでもないのにこのメッセージが届く症状
> が発生していたのが、昔のバグです。
>
>  それで、どうやって直したかと言うと、
>
>     (WM_USR + 13)  -->   (WM_USER + 57)
>
>  に変更しただけです。でもって、結局の所、誰がWM_USER+13をPostしていたのかは
> 分からずじまいです。

 WM_USER 直後の値はコモンダイアログなど Windowsのコントロール内でも
使用されていますので私の場合は WM_USER + 100以降を定義するようにして
います。もしくは RegisterWindowMessage()を使うなど。

[ ]
RE:03573 0.73beta ExceptionNo.03576
秀まるお さん 01/01/26 15:17
 
 ども、詳しい解析ありがとうございます。僕(および秀丸担当)はそこまで調べま
せんでした。

> にしたのなら、WM_USER+13がポストされても何もしないだけで、
> ぜんぜん問題ないはずですよね……?

 そういうことになります。ただし、WM_USER+13以外にも届く物があるとすると、そ
れによって悪影響があるかもしれないです。

> #他に、WM_USER+4,5,14なんかも届いています。

 WM_USER+4  ... ファイルメニュー中の履歴の作成しなおし
                                               --> 特に害は無し
 WM_USER+5  ... wParamに入っている値分、上スクロール
                                               --> 勝手にスクロールする
 WM_USER+14 ... 秀丸動作環境が変わったことの通知
                                              --> 特に害無し

 のようです。が、とりあえず、WM_USER+0〜100付近は使わない方がいいのですか
ね?。全く迷惑な話だ。

[ ]
RE:03574 0.73beta ExceptionNo.03580
秀まるお さん 01/01/26 16:57
 
 M.OBARAさんの所はMS-IME2000なのでしょうか?

[ ]
RE:03576 0.73beta ExceptionNo.03581
秀まるお さん 01/01/26 17:00
 
 ってことで、次のバージョンでは秀丸の方で、WM_USER + 0〜99までは使わないよ
うに修正してみます。

 鶴亀側はそもそもWM_USER + 0〜99付近は使っていません。

 ってことで、次の版にてまたダメでしたら次の作戦を考えるってことにさせていた
だきます。

[ ]
RE:03580 0.73beta ExceptionNo.03583
"M.OBARA" さん 01/01/26 17:14
 
>  M.OBARAさんの所はMS-IME2000なのでしょうか?

 はい、そうです。

 今まではほとんどNT4.0+ATOK13の環境だったのですが、最近は
98+MS-IME2000の環境です。そしてここ最近で2度発生しています。

 となるとやはりMS-IME2000が怪しいのですかね?

[ ]
RE:03583 0.73beta ExceptionNo.03585
Kengo さん 01/01/26 17:26
 
>  今まではほとんどNT4.0+ATOK13の環境だったのですが、最近は
> 98+MS-IME2000の環境です。そしてここ最近で2度発生しています。

うちもWin98(+MS-IME2000)です。

>  となるとやはりMS-IME2000が怪しいのですかね?

#やっぱり?
#MS-IME97,98の頃に出ていたかどうかは記憶があやふやです。
#あ、もちろん、そんな昔は「秀丸で」です。

turukame.1:00874 の こにさんの

> 二つ目は、エディターで一画面半ほど書いた状態でエディターをアクティブから
> バックにしたときに『(確か)編集できる行数を越えました』とのダイアログが
> 出てしまうということです。

も、たぶんWM_USER+13によるものだと思いますが、
こにさんのところもMS-IME2000なんでしょうか?

[ ]
RE:03585 0.73beta ExceptionNo.03625
こに さん 01/01/30 06:47
 
こにです。

> も、たぶんWM_USER+13によるものだと思いますが、
> こにさんのところもMS-IME2000なんでしょうか?

見逃していました。
このエラーが出ていたころは、Win98+IE5+IME2000でした。
Win2000になってからは、一度もこのエラーを見ていません。

[ ]