サブルーチン追加で突然秀丸内部エラーNo.29060
rosegardenyk さん 10/10/14 14:05
 
こんにちわ、rosegardenykです.
次のサブルーチンを本体マクロに付け加えこのサブルーチンをcallするステートメン
トを書き加える前にテスト実行したところ「秀丸内部エラー」で実行直後に落ちまし
た。このサブルーチンをcallしてもいないのに落ちたのです。単に削除して実行する
と正常に動作します。サブルーチンを書き加えただけで落ちるなんてことがあるので
しょうか?
【状況説明】
エラー発生後Ctrl+Alt+Delでタスクマネージャーを呼びだし秀丸を終了させることは
できたのですが、タスクマネージャー枠がプルプルとふるえていました。タスクマ
ネージャーも終了できるのですが、今度はデスクトップの秀丸ショートカットアイコ
ンがプルプルとふるえていました。このアイコンをWクリックすると、ハングアップ
起動ボタンのある画面が表示され、またまたプルプルとふるえていました。困ったの
は、OKボタンを押しても、ハングアップ起動ボタンを押しても、まったく先に進みま
せん。よく見るとOKボタンが繰り返し勝手に押されています。PCを通常のシャットダ
ウンさせることもできず、やりたくはなかったのですがPCスイッチの長押しで強制終
了させました。
再度PC立ち上げ後、そのままこのマクロ実行したところ、やはり「秀丸内部エラー」
(HmJre.dllエラーという表示ではない)で落ちます。サブルーチンをcallしていない
ことを確認して、PC再立ち上げ後、サブルーチンを削除して実行し、元通り正常に動
作することを確認しました。

今回のエラーは私にとって、今ままでで、いちばんこわいエラーでした。私のPCが古
く前に強制終了したところ、PCが起動しなくなったことがありました。長く使ってい
たのでもうこれでお釈迦かとも思いましたが、苦慮の末、PCの底を平手でバンバンと
強く叩いたところ、見事に復活しました。それ以来PC開始ボタン長押しの強制終了は
極力避けていました。 今回は2回も強制終了してしまいました。

原因究明と対応策をよろしくお願いします。

////$$1 $RegiJ /////////////////////////////////////////////////////////////
/////////////////////////////////////
FindBaseTerm2:
loaddll "hmjre.dll";
 ##i = 0; ##n = 0;
 while (#Bra > ##i) {
  ##i = ##i + 1;
  ##d = dllfunc( "FindRegular", $$SaveRegiJ[##i], $$1, 0);
  if (##d >= 0) {
   ##n = ##n + 1;
   $$HitWord[##n] = $$SaveRegiJ[##i];
  }//if (##d >= 0)
 }//while
 ##i = 0;
 while (##n > ##i) {
  ##i = ##i + 1;
  ##j = 0;
  while (##n > ##j) {
   ##j = ##j + 1;
   if (##i == ##j) continue;
   ##d = dllfunc( "FindRegular", $$HitWord[##i], $$HitWord[##j], 0);
   if (##d >= 0) ##HitWord[##i] = 1;
  }//while j
 }//while i
 ##i = 0;
 while (##n > ##i) {
  ##i = ##i + 1;
  if (##HitWord[##i] == 1) continue;
  $$1 = dllfuncstr("ReplaceRegular", "(" + $$HitWord + ")", $$1, 0, "「\\1」",
 1);
 }//while
 ##i = 0;
 while (##n > ##i) {
  ##i = ##i + 1;
  if (!##HitWord[##i]) continue;
  ##d = dllfunc("FindRegular", "(?<!「[^「」]*?)" + $$HitWord + "(?![^「」]*?」)",
 $$1, 0,);
  if (##d >= 0)  
   $$1 = dllfuncstr("ReplaceRegular", "(?<!「[^「」]*?)(" + $$HitWord + ")(?![^
「」]*?」)", "「\\1」", 1);
 }//while
return $$1;





[ ]
RE:29060 サブルーチン追加で突然秀丸内部No.29061
秀丸担当 さん 10/10/14 15:07
 

まずい状態でエラーになってしまったということで、申し訳ありません。

内容が無いマクロにサブルーチンを付けて実行してみたところ、こちらでは
「式がおかしいです」というエラーになりました。
サブルーチンの下のほうの、

  ##d = dllfunc("FindRegular", "(?<!「[^「」]*?)" + $$HitWord + "(?![^
  「」]*?」)",
 $$1, 0,);

のところで、最後のパラメータで「,)」という形になっているためエラーになる
ようです。
エラーとなるとマクロ実行前の状態になり、内部エラーとなったり落ちたりする
のは確認できませんでした。


このエラーが出るパターンでいろいろ試していたら、エラーメッセージが出る場
合と出ない場合があるようで、もしかしたらこのエラーが出る状況では何か不定
な状態になっているのかもしれないです。
そういう可能性があるということで調べてみます。

あと、内部エラーというメッセージの内容が、もし覚えていたら分かると原因が
わかるかもしれません。
例えば、
「マクロエラー:秀丸エディタで内部エラー発生」
「貼り付けでの内部エラー、可能であればサイトー企画に連絡ください。(3)」
など、メッセージの内容がいろいろあるため、内容がわかるとエラーの出ている
箇所が特定できるかもしれないです。

もし差し支えなければ、お手数ですがマクロの内容を送っていただけるとこちら
でも再現できるかもしれません。
もし送っていただける場合、"PEH00775@nifty.com"まで秀丸担当宛であることを
書いて送っていただけると助かります。

[ ]
RE:29061 サブルーチン追加で突然秀丸内部No.29062
秀丸担当 さん 10/10/14 15:58
 

>このエラーが出るパターンでいろいろ試していたら、エラーメッセージが出る場
>合と出ない場合があるようで、もしかしたらこのエラーが出る状況では何か不定
>な状態になっているのかもしれないです。
>そういう可能性があるということで調べてみます。

こちらの件は、エラーが出た後、作業用メモリにゴミが残っていたバグがありま
した。
V8.02の次のβ版で修正します。
ゴミがあってエラーが出ないケースでは、そのままコンパイルされたものが実行
され、場合によっては
「マクロエラー:秀丸エディタで内部エラー発生」
が出る可能性はあると思います。
落ちたりする症状とは違うかもしれません。


プルプルふるえるというのがどういう状態かわからないのですが、タスクマネー
ジャから秀丸エディタを終了させた後でも、タスクマネージャやデスクトップの
アイコンをプルプルとふるわせる(?)ということは、何か別の原因があるようにも
思えます。
プルプルふるえるというのは、選択状態が点滅しているとか、実際に上下左右に
動いているように見えるとか、どのように見えていたかがわかると何かヒントに
なるかもしれないです。

[ ]
RE:29061 サブルーチン追加で突然秀丸内部No.29063
rosegardenyk さん 10/10/14 16:38
 
>「マクロエラー:秀丸エディタで内部エラー発生」
単純な表現だったのでこちらの方だったと思います.


プルプルというのはいずれも枠がチラチラするということで、印象としては震えてい
るように見えます。
全体が点滅したり、上下、左右に振れるるわけではありません。

ハングアップチェッカーの画面では、OKボタンが勝手にON/OFFしているように見え上
記同様枠が震えて見えます。3つのなかでいちばん震えが大きいです。ハングアップ
チェッカーボタンを押しても、震えがとまりませんでした。

サブルーチンの最後の部分は推敲が不十分なため、いちばん怪しいと思っていました。
だだし本体にcall命令なしのサブルーチンの構文エラーでこうなるということは思っ
てみませんでした。構文チェック段階でも落ちることはあるということでしょうか?
そちらのテストではcallした結果なのでしょうか?

>もし差し支えなければ、お手数ですがマクロの内容を送っていただけるとこちらで
>も再現できるかもしれません
本体マクロは大きいです。そのまんまおくることはしたくないのですが説明したとお
り、こちらで簡易版をつくって再現を確認してからおくるのは問題があります。お試
し版みたいにいくつか作っておくるかは検討させてください。元々call が付いてい
ないのでテスト結果は変わらないと思います。 先ずは、ご指摘の最後の部分を除い
てこちらでテストします。(こわいですけれど)
どこが問題なのかわかれば、そちらも検討しやすいと思います。
 

[ ]
RE:29063 サブルーチン追加で突然秀丸内部No.29064
秀丸担当 さん 10/10/14 17:43
 

詳しい内容ありがとうございます。

>プルプルというのはいずれも枠がチラチラするということで、印象としては震えてい
>るように見えます。
>全体が点滅したり、上下、左右に振れるるわけではありません。

そうですか。そうだとすると、アクティブなウィンドウが頻繁に変わり続けてい
るのかもしれないです。

>ハングアップチェッカーの画面では、OKボタンが勝手にON/OFFしているように見え上
>記同様枠が震えて見えます。3つのなかでいちばん震えが大きいです。ハングアップ
>チェッカーボタンを押しても、震えがとまりませんでした。

これも、OKボタンがアクティブ/非アクティブになるのを繰り返してそのように
見えるのかもしれないです。

>サブルーチンの最後の部分は推敲が不十分なため、いちばん怪しいと思っていました。
>だだし本体にcall命令なしのサブルーチンの構文エラーでこうなるということは思っ
>てみませんでした。構文チェック段階でも落ちることはあるということでしょうか?
>そちらのテストではcallした結果なのでしょうか?

「マクロエラー:秀丸エディタで内部エラー発生」というメッセージが出ていた
としたら、構文チェックの段階は終わって、実行している段階ということになる
と思います。
そのとき、エラーがでるべきところがエラーが出ずにコンパイル状態がおかしい
まま実行されたことで、何かしらおかしな状態が実行されてしまったのかもしれ
ないです。
推測ですが、そのとき、不定な値の実行として、アクティブが頻繁に変わり続け
るのが永久ループするようなそういう挙動になってしまっていたのかもしれない
です。
もしそうだとしたら、タスクマネージャよりhidemaru.exeを全て強制終了させる
と、マクロの実行は止まるはずなので、症状も止まると思います。

hidemaru.exeを全て強制終了させても起きるとしたら、何か別のソフトが関係し
ているかもしれません。


V8.02の次のβ版で、エラーが出ない場合があるのを修正しました。
もしこれが原因だとしたら、エラーが確実に出ることで結果的に問題は起きなく
なると思います。
以下のページの一番下からダウンロードできます。
http://hide.maruo.co.jp/software/hidemaru.html

[ ]
RE:29064 サブルーチン追加で突然秀丸内部No.29065
rosegardenyk さん 10/10/14 18:15
 
>V8.02の次のβ版で、エラーが出ない場合があるのを修正しました。
>もしこれが原因だとしたら、エラーが確実に出ることで結果的に問題は起きなく
>なると思います。
>以下のページの一番下からダウンロードできます。
>http://hide.maruo.co.jp/software/hidemaru.html
10/14付けβ13のことですね? β13をDLしてテストしてみます。

[ ]
RE:29065 サブルーチン追加で突然秀丸内部No.29066
秀丸担当 さん 10/10/15 09:10
 

>10/14付けβ13のことですね? β13をDLしてテストしてみます。

そうです。お手数をおかけしてすみません。
不定な内容のマクロが実行され続けるという問題だとしたら、実行前するにエ
ラーで止まるので、これで大丈夫かもしれません。

[ ]