起動直後ファイル読み込み時に強制終了
いつも便利に使わせてもらっています。
37.0以降強制終了するようになってしましました。
環境:win10 64bit
37.0(zip)~Canary1112(zip)
状況:解凍直後の最初の起動の段階からzip、rarなどの書庫、jpgなどの画像ファイルを読み込ませると強制終了する。
一度オプション>設定を開き、何も変更せずに設定ウィンドウを閉じると以前のように読み込めるようになる。
アプリケーションを一度正常終了し、再起動するとまたオプションを開かないとファイルが開けません。
再起動後、開いたブックの復元設定がONの場合はすぐに強制終了します。
アイコンやウィンドウに書庫をドロップするなどした場合も強制終了します。
エラーログに関しては生成されないみたいです。
Comments (10)
-
repo owner -
reporter 返信ありがとうございます。
それぞれ試しましたので報告します。・AnyCPU版…同様のエラーが出ます。
・.NET修復…同様のエラーが出ます。
・イベントビューワのログについて添付します
1,エラー:ソース .netruntime
アプリケーション:NeeView.exe
フレームワークのバージョン:v4.0.30319
説明: ハンドルされない例外のため、プロセスが中止されました。
例外情報:System.AccessViolationException
場所 NeeView.Native.Interop+NativeMethods.NVGetImageCodecInfo(UInt32, System.Text.StringBuilder, System.Text.StringBuilder)
場所 NeeView.WicDecoders.ListUp()
場所 NeeView.PictureFileExtension.GetDefaultExtensions()
場所 NeeView.PictureFileExtension.UpdateDefaultSupprtedFileTypes()
場所 NeeView.PictureProfile..ctor()
場所 NeeView.PictureProfile..cctor()例外情報:System.TypeInitializationException
場所 NeeView.PictureProfile.get_Current()
場所 NeeView.ArchiveEntry.IsImage()
場所 NeeView.ArchiveEntryCollection+<>c.<GetEntriesWhereImageAndArchiveAsync>b__20_1(NeeView.ArchiveEntry)
場所 System.Linq.Enumerable+WhereListIterator1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext() 場所 System.Collections.Generic.List
1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]..ctor(System.Collections.Generic.IEnumerable1<System.__Canon>) 場所 System.Linq.Enumerable.ToList[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable
1<System.__Canon>)
場所 NeeView.ArchiveEntryCollection+<GetEntriesWhereImageAndArchiveAsync>d__20.MoveNext()
場所 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
場所 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
場所 System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
場所 System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)
場所 System.Threading.Tasks.Task.FinishContinuations()
場所 System.Threading.Tasks.Task1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetResult(System.__Canon) 場所 System.Runtime.CompilerServices.AsyncTaskMethodBuilder
1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetResult(System.__Canon)
場所 NeeView.ArchiveEntryCollection+<GetEntriesAsync>d__17.MoveNext()
場所 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
場所 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
場所 System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
場所 System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)
場所 System.Threading.Tasks.Task.FinishContinuations()
場所 System.Threading.Tasks.Task1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetResult(System.__Canon) 場所 System.Runtime.CompilerServices.AsyncTaskMethodBuilder
1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetResult(System.__Canon)
場所 NeeView.Archiver+<GetEntriesAsync>d__53.MoveNext()
場所 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
場所 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
場所 System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
場所 System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)
場所 System.Threading.Tasks.Task.FinishContinuations()
場所 System.Threading.Tasks.Task1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetResult(System.__Canon) 場所 System.Runtime.CompilerServices.AsyncTaskMethodBuilder
1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetResult(System.__Canon)
場所 NeeView.Archiver+<GetEntriesAsync>d__52.MoveNext()
場所 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
場所 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
場所 System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
場所 System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)
場所 System.Threading.Tasks.Task.FinishContinuations()
場所 System.Threading.Tasks.Task1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetResult(System.__Canon) 場所 System.Threading.Tasks.UnwrapPromise
1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetFromTask(System.Threading.Tasks.Task, Boolean)
場所 System.Threading.Tasks.UnwrapPromise1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].ProcessInnerTask(System.Threading.Tasks.Task) 場所 System.Threading.Tasks.UnwrapPromise
1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].ProcessCompletedOuterTask(System.Threading.Tasks.Task)
場所 System.Threading.Tasks.UnwrapPromise`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Invoke(System.Threading.Tasks.Task)
場所 System.Threading.Tasks.Task.FinishContinuations()
場所 System.Threading.Tasks.Task.Finish(Boolean)
場所 System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)
場所 System.Threading.Tasks.Task.ExecuteEntry(Boolean)
場所 System.Threading.ThreadPoolWorkQueue.Dispatch()2,エラー:ソース Application Error
障害が発生しているアプリケーション名: NeeView.exe、バージョン: 37.9.0.0、タイム スタンプ: 0xbdb13d99
障害が発生しているモジュール名: KERNELBASE.dll、バージョン: 10.0.18362.239、タイム スタンプ: 0xb6f4b059
例外コード: 0xe0434352
障害オフセット: 0x000000000003a839
障害が発生しているプロセス ID: 0x36e8
障害が発生しているアプリケーションの開始時刻: 0x01d6bc37d6f937bb
障害が発生しているアプリケーション パス: E:\win7\downloadfield\NeeViewCanary1113_AnyCPU\NeeViewCanary-AnyCPU\NeeView.exe
障害が発生しているモジュール パス: C:\WINDOWS\System32\KERNELBASE.dll
レポート ID: 5cb39efc-039a-4a86-b9fb-3cb5cc0d72c5
障害が発生しているパッケージの完全な名前:
障害が発生しているパッケージに関連するアプリケーション ID:以上、参考になれば幸いです。
-
repo owner WIC情報取得処理の強化 (refs
#920) WIC情報取得ON/OFF設定追加 (設定 > 対応形式 > WIC情報を使用する)→ <<cset 0fede1c70e46>>
-
repo owner 詳細な情報ありがとうございます。
できるだけの対策を施したCanary1118をアップしましたのでお試しください。
現象が続くようであれば、設定の「対応形式」>「WIC情報を使用する」をOFFにしてみてください。エラーが発生している処理自体を行わないようになります。
-
reporter 対応ありがとうございます。
引き続き同じ環境で通常利用の範囲で試してみましたが、
「WIC情報を使用する」設定ON/OFFともにエラーがでなくなったように見えます。
改善されたようです。
ありがとうございました。追加というか、補足説明希望なのですが、
今回のご対応から、Windows Imaging Componentまわり(ぐぐりました)でのエラーだと推察したのですが
当方の環境や、使用していた書庫や画像にNeeView側で意図していない状況があったのでしょうか?
現時点で推測できる範囲で構いませんのでよければご回答お願いします。今回はありがとうございました。
-
repo owner WIC情報取得処理のタイミングを変更 (refs
#920)→ <<cset f57458697536>>
-
repo owner こちらでは現象を再現できておりませんので、推測になります。
画像コーデックや画像処理ソフトをインストールするとWIC画像コーデックが増えることがありますので、おそらくそのいずれかの画像コーデックに関連してなんらかの不具合が発生しているものと思われます。
37.0からWIC情報の取得タイミングを変更したため現象が発現するようになったと思われます。(36.0では起動直後に取得、37.0では画像表示前もしくは設定ウィンドウ表示前。処理自体は同じ)
Canary1119 では、この取得タイミングを36.0に近いものに変更したのでお試しください。このバージョンで不具合が発生する場合は設定ウィンドウを開けなくなってしまっていると思いますのご連絡ください。別の方法を検討します。
-
reporter 返信・解説有り難うございました。
理解できました。>画像処理ソフトからコーデック
7から10のアップデートで処理ソフトも幾度となく消し入れしているので可能性高そうです。先の書き込みに重複になりますが、「WIC情報を使用する」設定ON/OFFともにエラーがでなくなったように見え、(詳細に色々な動作を試せてなかったので回りくどい表現でスミマセン)
問題解消されたようなので本件は解決フラグを立てます。
設定ウィンドウの方も問題なくひらけました。またなにか気が付きましたらお知らせします。
ありがとうございました。 -
reporter - changed status to resolved
ありがとうございました。
-
repo owner - changed status to closed
- Log in to comment
37.0からはネイティブイメージ化による起動高速化処理を実装しており、これが影響している可能性があります。
Canary1113 ではこれを無効にしたイメージも用意したので、こちらで動作に違いがあるか確認お願いします。
Windowsのイベントビューアーにエラーログが残っているかもしれません。
エラーを発生させた後、イベントビューアーの[Windowsログ]->[Application]のページを開いて確認してみてください。もしログが残っていたらその内容をコメントしていただけると参考になります。
.NET Frameworkが破損している可能性もあります。「.NET Framework 修復ツール」を試してみてください。(参考)