トップ回答者
ntdll.dllの例外0xc0000374で、アプリ終了

質問
-
こんにちは
VB6で作成したアプリケーション、
画面中のRichTextBoxコントロールに、Wordで編集した内容(特に表)をコピペする時に、
異常が出て、落ちました。
イベントビューアを確認したところ、下記のような障害が発生しました。
全般:
障害が発生しているアプリケーション名: ***.exe、バージョン: 3.1.0.39、タイム スタンプ: 0x54b604ab
障害が発生しているモジュール名: ntdll.dll、バージョン: 6.1.7601.18247、タイム スタンプ: 0x521ea91c
例外コード: 0xc0000374
障害オフセット: 0x000c3873
障害が発生しているプロセス ID: 0x1520
障害が発生しているアプリケーションの開始時刻: 0x01d0554e09277ee6
障害が発生しているアプリケーション パス: ..........\***.exe
障害が発生しているモジュール パス: C:\Windows\SYSTEM32\ntdll.dll
レポート ID: 0b728d43-c142-11e4-83e0-001bdc0590e5詳細:
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2015-03-03T01:10:14.000000000Z" />
<EventRecordID>57078</EventRecordID>
<Channel>Application</Channel>
<Computer>Eryou_S-THINK</Computer>
<Security />
</System>
- <EventData>
<Data>***.exe</Data>
<Data>3.1.0.39</Data>
<Data>54b604ab</Data>
<Data>ntdll.dll</Data>
<Data>6.1.7601.18247</Data>
<Data>521ea91c</Data>
<Data>c0000374</Data>
<Data>000c3873</Data>
<Data>1520</Data>
<Data>01d0554e09277ee6</Data>
<Data>..........\***.exe</Data>
<Data>C:\Windows\SYSTEM32\ntdll.dll</Data>
<Data>0b728d43-c142-11e4-83e0-001bdc0590e5</Data>
</EventData>
</Event>解決対策がありましたら、教えて頂きたいと思います。
宜しくお願い致します。
- 編集済み ntdll.dll例外0xc0000374でアプリ終了 2015年3月4日 1:05
回答
-
> 例外コード: 0xc0000374
これはSTATUS_HEAP_CORRUPTION、ヒープ破損を意味します。プログラムのある個所で不正なメモリアクセス(特に不正な領域への書き込み)をしたことを意味します。書き込みをした瞬間には検出できませんでしたが、その後、新たにメモリ確保処理をしている最中に管理領域に矛盾を見つけたために処理続行不能となり、アプリケーションが停止しています。質問ではコピー処理の際にメモリ確保が行われやすいということなのだと思います。
ですので、解決するためにはコピペそのものではなく、それ以前に行った処理のどこかに問題があるのでそれを見つける必要があります。
- 回答の候補に設定 佐祐理 2015年3月4日 23:47
- 回答としてマーク 星 睦美 2015年3月16日 7:13
- 回答としてマークされていない ntdll.dll例外0xc0000374でアプリ終了 2015年3月18日 6:31
- 回答の候補の設定解除 ntdll.dll例外0xc0000374でアプリ終了 2015年3月18日 6:31
- 回答としてマーク ntdll.dll例外0xc0000374でアプリ終了 2015年3月30日 0:21
すべての返信
-
> 例外コード: 0xc0000374
これはSTATUS_HEAP_CORRUPTION、ヒープ破損を意味します。プログラムのある個所で不正なメモリアクセス(特に不正な領域への書き込み)をしたことを意味します。書き込みをした瞬間には検出できませんでしたが、その後、新たにメモリ確保処理をしている最中に管理領域に矛盾を見つけたために処理続行不能となり、アプリケーションが停止しています。質問ではコピー処理の際にメモリ確保が行われやすいということなのだと思います。
ですので、解決するためにはコピペそのものではなく、それ以前に行った処理のどこかに問題があるのでそれを見つける必要があります。
- 回答の候補に設定 佐祐理 2015年3月4日 23:47
- 回答としてマーク 星 睦美 2015年3月16日 7:13
- 回答としてマークされていない ntdll.dll例外0xc0000374でアプリ終了 2015年3月18日 6:31
- 回答の候補の設定解除 ntdll.dll例外0xc0000374でアプリ終了 2015年3月18日 6:31
- 回答としてマーク ntdll.dll例外0xc0000374でアプリ終了 2015年3月30日 0:21
-
> 例外コード: 0xc0000374
これはSTATUS_HEAP_CORRUPTION、ヒープ破損を意味します。プログラムのある個所で不正なメモリアクセス(特に不正な領域への書き込み)をしたことを意味します。書き込みをした瞬間には検出できませんでしたが、その後、新たにメモリ確保処理をしている最中に管理領域に矛盾を見つけたために処理続行不能となり、アプリケーションが停止しています。質問ではコピー処理の際にメモリ確保が行われやすいということなのだと思います。
ですので、解決するためにはコピペそのものではなく、それ以前に行った処理のどこかに問題があるのでそれを見つける必要があります。
佐祐理様
ご回答、ありがとうございます。
この方向で、チェックしてみます。
よろしくお願いします。
-
> 例外コード: 0xc0000374
これはSTATUS_HEAP_CORRUPTION、ヒープ破損を意味します。プログラムのある個所で不正なメモリアクセス(特に不正な領域への書き込み)をしたことを意味します。書き込みをした瞬間には検出できませんでしたが、その後、新たにメモリ確保処理をしている最中に管理領域に矛盾を見つけたために処理続行不能となり、アプリケーションが停止しています。質問ではコピー処理の際にメモリ確保が行われやすいということなのだと思います。
ですので、解決するためにはコピペそのものではなく、それ以前に行った処理のどこかに問題があるのでそれを見つける必要があります。
佐祐理様
こんにちは
ご指摘の方法で、この前の処理をチェックしてみました、
コピペ処理の前に、RichTextBoxコントロールに、テキストを読み込む処理があります。下記のよう、
Open wstrFilename For Input As wintFileNo
Do While Not eof(1) ' ファイルの終端までループを繰り返します。
gstrTempData = Input(1, wintFileNo) ' 1 文字のデータを読み込みます。
gstrTempText = gstrTempText & gstrTempData
Loop
Close wintFileNo
pctlControl.TextRTF = gstrTempTextこの処理で、STATUS_HEAP_CORRUPTION、ヒープ破損の原因になれますか?
すみません、
お手数をおかけしますが、
どうぞよろしくお願いいたします。
-
Application Verifier を使って調べてみては?
----------------------------------------------------------
Windows SDK ツール:Application Verifier のご紹介
http://blogs.msdn.com/b/japan_platform_sdkwindows_sdk_support_team_blog/archive/2011/05/30/windows-sdk-application-verifier.aspx
----------------------------------------------------------- 回答の候補に設定 星 睦美 2015年3月23日 2:54
- 回答の候補の設定解除 ntdll.dll例外0xc0000374でアプリ終了 2015年3月30日 0:21
-
Application Verifier を使って調べてみては?
----------------------------------------------------------
Windows SDK ツール:Application Verifier のご紹介
http://blogs.msdn.com/b/japan_platform_sdkwindows_sdk_support_team_blog/archive/2011/05/30/windows-sdk-application-verifier.aspx
----------------------------------------------------------ご回答ありがとうございます。
ご紹介のApplication Verifierを使ってみましたが、
エラーの内容を分析できませんでした(苦笑)