アプリケーションエラーが頻発!「メモリを参照しました。メモリが"written"になることはできませんでした」原因はIME

アプリケーションエラー
"0x7c951bf4"の命令が"0x3c7e3550"のメモリを参照しました。メモリが"written"になることはできませんでした。プログラムを終了するには[OK]をクリックしてください。プログラムをデバッグするには[キャンセル]をクリックしてください。...このようなアプリケーションエラーが頻繁に発生した場合どのように対処するか?
ちなみにエラーメッセージは「メモリが"written"になることはできませんでした。」と表示される場合だけでなく「メモリが "read" になることはできませんでした。」と表示される場合もあった。

エラーメッセージは「turukame.exe」となっているので、秀丸メール(turukame.exe)のサポート会議室で質問してみる。
すると、

0x7c951bf4っていうアドレスは秀丸メールの中じゃないので、可能性としては、 何か秀丸メール以外の要因があるんじゃないかと思いますが...。

という回答。

秀丸メールが直接の原因ではないようで、なにか別のプログラムが悪さを引き起こしているようだ。うーっむ。

では原因を引き起こしたプログラムはなにか...?

原因を引き起こしたプログラムがなにかを調べる

まずは「msconfig」を実行する。
通常はスタートアップなどに複数のプログラムが入っているため、
メモリには複数のプログラムが常駐している。
この状況では原因のソフトを特定しにくいので動くプログラムを制御し最小にする。そのうえでエラーが再発するかをチェックする。

「msconfig」と打ち込む
「スタート」からファイル名を指定して実行」をクリックして「msconfig」と打ち込む。

「診断スタートアップ」を選択し「OK」をクリック
「診断スタートアップ」を選択し「OK」をクリックしてシステムを再起動する。
これで、常駐プログラムがないクリーンな状況でテストができる。

この状況で秀丸メールver5.00のテスト。
これまで不具合(症状発生)は
・メール送信の画面
・メールタイトルに半角で日付を入れるとき
に多く発生していた。

そこで、上記のような設定でメール送信画面を開くと...
保護違反が発生しました
同じような症状が発生。

秀丸メールのプロセスで保護違反が発生しました。秀丸メールは異常終了します。
秀丸メールの異常終了についての詳細情報はdump.txtに出力されています。
というメッセージの後、つづけて2つのアプリケーションエラーが表示される。

メモリがwrittenになることはできませんでした。というエラー表示を再現

この後、「タスクマネージャー」を見ると
タスクマネージャーを見る
これまでスタートアップに登録されていたプログラムはなにも動いておらず、実行されているプロセスはごくわずか。メモリ内は非常に少ない状況であることがわかる。

エラーの再現ができたので、秀丸メールの作者にdump.txtを送って調査をお願いすることに。

エラーの記録を分析する

秀丸作者にエラー記録を送ったが、はたして原因はわかるのか...
そして秀丸さん、ほんとにお手数をおかけし申し訳ない。

▼4/18
その後、秀丸作者さまより
・dump.txtからは呼び出し元が分からない
・ワトソン博士でエラーログを取ること
 (秀丸側での「全般的な設定・上級者向け・デバッグ」の「保護違反が起
きた時はWindowsにエラー処理させる」を今度はONにしてみて、さらには
「drwtsn32.exe -i」も実行)
・秀丸メールを念のため最新βに入れ替えること
というアドバイスがありました。

このすべてを実行しました。
秀丸メールは最新Ver5.03β1版
が、エラーはまだ無くなりません(i-i)

ワトソン博士 Drwtsn32exe

ワトソン博士でもエラーログはでていない。(記録されていない)
このエラーはアプリケーションエラーではないということだろうか...。

エラーの原因は「ntdll.dll」なのか?

なお インストールエラー発生の原因と対処、windowsインストーラサービスにアクセスできませんでしたについて、秀丸とは関係ありませんでした。

となると、秀丸作者が指摘してくれたもうひとつの可能性「ntdll.dll」が原因か?
ntdll.dllはマイクロソフトのウィンドウズ用の基本ソフトの部品の1つ。ntdll.dllは、エクスプローラーが拡張機能を呼び出す際に核となって機能する関数のコンポーネントで、Windowsアップデートのサービスパックに含まれているファイルである。

マイクロソフトサポートオンラインに
Ntdll.dll のデッドロックが原因でプログラムがハングする
Ntdll.dll が原因のヒープ破損によりプログラムでアクセス違反が発生することがある
という記事があるが、具体的な解決策は示されていない。

マルチプロセッサの環境でエラーが起きやすいということだが、エラーを起こす特定のマシンのみがコアDUOプロセッサなので条件にあてはまりそうだ。

はたして原因はこれか?

ntdll.dllが壊れていないかどうかをチェックするもっとも確実な方法は正しいファイルに入れ替えすること。そのためには、XPサービスパック2をダウンロードし、その中のntdll.dllファイルを使う必要がある。その方法ははてなクエッションで詳しく説明されている。

▼4/19
上記の方法でntdll.dllを最新のものに変更した。
しかし、エラーはまだ無くならない...。

「ntdll.dll」が原因ではなかった。では真の原因は?

ひきつづき秀丸作者さんから助言あり。
なんとこのエラー対応のために秀丸メールのバージョンアップをしてくれた。

2008/04/18 V5.03beta2
* 機能追加/仕様変更
メールをドラッグする時に、タスクバー上でホバーさせたらホバーさせたウィンドウをアクティブにするようにした。
メール作成中のSubject:ヘッダ書き換えなどでタイトルバーを書き換える時に、dump.txt出力するようにした。(バグ調査用)

感謝感激のあまり涙...(i-i)。ありがとうございます>秀丸さま

秀丸メールのバージョン5.03β2をインストールし、
指示通りに秀丸メールのデバッグ設定を変更した。
Hidemarumaildebag
この処理が功を奏した。

エラーはまだなくならないが、エラーの記録をとることができた。
ワトソン博士にログ記録ができたのだ。
Windrwtsn
▼以下はワトソン博士のエラーログの一部
*----> スタック バック トレース <----*
WARNING: Stack unwind information not available. Following frames may be wrong.
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCR80.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\system32\imjp12.ime -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\system32\USER32.dll -
*** WARNING: Unable to verify checksum for C:\Program Files\HidemaruMail\HideCtl2.dll
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Program Files\HidemaruMail\HideCtl2.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\system32\IMM32.dll -
ChildEBP RetAddr Args to Child


このエラーログを見ても自分は判定できないが、
エラーの真の原因は「ウィンドウズが壊れているのではないか...」
だんだんそう感じてきた。

アプリケーションエラーを起こしていたのはIMEだった

このエラーログを秀丸作者に送った。
意外な返事が届いた...。

ワトソンログを見て分かったことですが、imjp12というモジュール名が出てきているようです。これは、IME2007というかな漢字変換ソフトみたいですけど、これがもしかして関係してるかもしれないので、一度これを、Windows標準のIMEとかに戻してしばらく使っていただくといいかなぁと思ったりします。

つまり、エラーの原因はオフィス2007についていたIME2007というかな漢字変換ソフトかもしれないということだ。

オフィス2007は、昨年マイクロソフトから購入した最新のオフィスソフトだが、リボンインターフェースの使い勝手が悪くて閉口したやつだ。結局、オフィス2007のワードもパワーポイントも削除し、使わざるを得ないエクセルを残した。(2007年12月にとほほのエクセル2007という記事を書いている)
このとき、オフィス2007のIME2007は特別削除はせずに、そのまま残していた。

▼4/20
IME2007を削除した。
コントロールパネル→プログラムの追加と削除→Microsoft Office2007の「変更」で、Office共通機能の中にあるMicrosoft IME(日本語)を「インストールしない」にする。
設定したらシステムを再起動。

なんと、これ以降エラーは出なくなった。
秀丸メールは快適に動いている。

やはり原因は秀丸メールではなかった。

アプリケーションエラーの原因はIME2007だった

アプリケーションエラーの原因はオフィス2007のIME2007だったか...。

マイクロソフトウィンドウズが壊れていく原因はマイクロソフトオフィス2007が作っていたということか...?

まだ断定できないだろうが、しばらくこれで様子を見ることにする。

▼4/25 秀まるおさんの事務所(サイトー企画)さんに訪問
秀丸作者の秀まるおさんの事務所に訪問し、直接エラーについて意見交換した。

秀まるおさんと遠田のツーショット秀丸エディタ作者の秀まるおさんの事務所(サイトー企画さん)に訪問。スタッフの方に秀まるおさんと遠田のツーショットを撮影してもらった。快く訪問を迎えていただきありがとう。

すでにIME2007を削除したため断定できないが、IME2007の「前後フィードバック」機能と秀丸メールの相性が悪かったかもしれないということだった。



Ime2002 IMEには「前後フィードバック」という機能がある。秀丸エディタや秀丸メールは、「前後フィードバック」を使うか使わないかを指定できるが、この「前後フィードバック」を使う際にエラーが起きていた可能性が高いかもしれないということだった。

前後フードバックとは、前後の文字を事前に読み込んで判断し、変換精度を高める機能である。

(画像はIME2002のもの)

例えば、
同じ「かえる」という入力でも、前の文章により漢字変換は
 電車で帰る
 模様を替える
 安く買える
と第一候補の変換が変わる。(かえる→帰る、替える、買える)

この「前後フィードバック」機能が影響していたのではないかということだった。「前後フィードバック」については初めて知ったので、ちょっとした発見。

この機能のオンオフによりエラーがおきるかどうかも影響するのか...。
しばらく設定を変えて試してみることにする。


■当面の結論
マイクロソフトのIME2007を削除してからほとんどアプリケーションエラーが起きなくなった。アプリケーションエラーは秀丸メールでとくに多かったが、それ以外のソフトでもおきていた。いずれも日本語入力時であった記憶がある。おそらく、私のPCではIME2007が相性悪かったのだろう。アプリケーションエラーの原因はIMEだった。(私の場合)

とゆ~わけで(ど~ゆ~わけぢゃ(^^;)

IMEは選ぶべし(^^;

この件はこれでひとまず決着、ということで。

▼秀丸のサポート会議室での一連のやりとり
アプリケーションエラーで突然終了 No.33761 どもども さん 08/04/12

ずっとフォローしてくれた秀丸エディタ開発者の秀まるおさん、
本当にありがとうございます。
この場をおかりして感謝申し上げます。
m(__)m

▼関連がありそうなPCのエラー表示


アプリケーションエラーが頻発!「メモリを参照しました。メモリが"written"になることはできませんでした」

このエントリーをはてなブックマークに追加 遠田幹雄のLINE@アカウントを友だち追加  

この記事を書いた人

中小企業診断士:遠田幹雄の顔写真遠田 幹雄(とおだ みきお)
 
経営コンサルティング企業の株式会社ドモドモコーポレーション代表取締役。石川県かほく市に本社があり金沢市を中心とした北陸三県を主な活動エリアとする経営コンサルタントです。
小規模事業者や中小企業を対象として、経営戦略立案とその後の実行支援、商品開発、販路拡大、マーケティング、ブランド構築等に係るコンサルティング活動を展開しています。民民での直接契約を中心としていますが、商工三団体などの支援機関が主催するセミナー講師を年間数十回担当したり、支援機関の専門家派遣中小企業基盤整備機構の経営窓口相談に対応したりもしています。
保有資格:中小企業診断士、情報処理技術者
 
会社概要およびプロフィールは株式会社ドモドモコーポレーションの会社案内にて紹介していますので興味ある方はご覧ください。


この記事のURL「https://dm2.co.jp/2008/04/writtenime.html」をQRコードで表示
この記事のURL「https://dm2.co.jp/2008/04/writtenime.html」をQRコードで表示「https://dm2.co.jp/2008/04/writtenime.html」
パソコンで表示されたページをスマホでも見たい場合は、このQRコードをスマホのカメラ(QRコードが読めるリーダー)で読むとページが表示されます。