7

したがって、アプリパッケージを作成すると、次のようにWindows App Certification Kit失敗します。

クラッシュとハング•エラーが見つかりました:クラッシュとハングのテストで次のエラーが検出されました。◦アプリケーション47878User.MyApp_1.0.0.3_neutral__a2qvk4qzttz7jがWindowsエラー報告によって検出され、クラッシュまたはハングが発生しました。

私のイベントログには、次のように表示されます。

アプリケーション:MyApp.exeフレームワークバージョン:v4.0.30319説明:未処理の例外が原因でプロセスが終了しました。例外情報:System.Exceptionスタック:System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at System.Threading.WinRTSynchronizationContext + Invoker.b__0(System.Object)at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)at System .Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext、System.Threading.ContextCallback、System.Object、Boolean)at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext、System.Threading.ContextCallback、System.Object、 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()のSystem.Threading.ThreadPoolWorkQueueのブール値)。

と:

障害のあるアプリケーション名:MyApp.exe、バージョン:1.0.0.0、タイムスタンプ:0x50546b92障害のあるモジュール名:KERNELBASE.dll、バージョン:6.2.9200.16384、タイムスタンプ:0x5010ac2f
例外コード:0xe0434352
障害オフセット: 0x00014b32障害の
あるプロセスID:0x1894
障害アプリケーションの開始時刻:0x01cd933a183ece6a障害のある
アプリケーションパス:C:\ Program Files \ WindowsApps \ 47788User.MyApp_1.0.0.3_neutral__a2qvk0qzyyn7m \ MyApp.exe障害のある
モジュールパス:C:\ Windows \ SYSTEM32 \ KERNELBASE.dllレポートID:6b9e9db3-ff2d-11 -be8d-001c42ac6e2f障害のあるパッケージのフルネーム:47878User.MyApp_1.0.0.3_neutral__a2qvk0qzyyn7m

問題は、デバッグモード、リリースモード、サスペンド/再アクティブ化イベントの強制などのいずれでも、クラッシュを再現できないことです。

Windows App Certification Kitがアプリを6回目(または7回目)に実行すると、スプラッシュ画面が短時間表示された後、アプリが消えます(クラッシュする可能性があります)。
6回目の実行でWAPKは何をしていますか?これを再現/デバッグするにはどうすればよいですか?

4

4 に答える 4

7

私は専門家ではありませんが、アプリケーションで同じプロセスを実行して、何が起こっているのかを理解できるかどうかを確認しました。以下は私がしたことの記録です(他の誰かに役立つことを願って)。

認定キットの結果

失敗:クラッシュしてハングする

エラーが見つかりました:クラッシュとハングのテストで次のエラーが検出されました。

アプリケーションneutral__6j94sra26jgtmがWindowsエラー報告によって検出され、クラッシュまたはハングが発生しました。修正されていない場合の影響:アプリが応答を停止したりクラッシュしたりすると、データが失われる可能性があり、ユーザーエクスペリエンスが低下します。修正方法:問題の実行可能ファイルを調査してデバッグし、問題を特定して修正してから、アプリを再構築して再テストします。ソフトウェア開発ライフサイクル内でのアプリケーションベリファイアの使用。

これはまったく役に立ちませんでした。この議論からリンクが更新されたと思いますが、それほど役に立ったとは思いませんでした。

調査

一部のエラーはイベントビューアに記録されます(Windowsキー+ R、「eventvwr」と入力します)。私は3つの有用なエントリを見ることができます:

  • Windowsエラー報告イベント
  • アプリケーションエラーイベント
  • .NETランタイムイベント

Windowsエラー報告イベントには、ログファイルを保存した場所のファイルパスなど、もう少し情報があります。

最終的にコマンドラインからWindowsアプリケーション認証ツールを実行し、PerfromanceShutdownテストに失敗したテストを分離しました。コマンドプロンプトから実行するために使用されるコマンドは次のとおりです。

C:\Program Files (x86)\Windows Kits\8.0\App Certification Kit>appcert test -apptype windowsstoreapp -packagefullname <applicationfullname> -reportoutputpath e:\Projects\AlbumFlow.Win8\output1.xml

これにより、suspend / exit/resumeメソッドで何かが発生する可能性があります。

私が見た他の場所はでしたC:\Users\<userName>\AppData\Local\Microsoft\AppCertKit。これには、いくつかの大きなファイル(〜100Mb)のWindowsパフォーマンス分析トレースファイルがありました。これは便利そうに見えましたが、理解できませんでした。

解決策 私がトレースファイルを調べているときに、チームの他のメンバーが、サスペンションマネージャーがファイル参照を正しく閉じていないことに気づきました。

これは、VisualStudioのDebugLocationツールバーを使用して再現できます。Suspend、Resume、Suspend、Terminateを選択すると、問題が再現されました。

これらのエラーをデバッグするのは少し暗い芸術のように見えるので、これが誰かに役立つことを願っています。

于 2012-09-24T13:09:55.447 に答える
4

わかりました。数日前に問題を見つけました。

サスペンドとシャットダウンのシナリオを適切にテストしませんでした。

誰かが同様の問題を抱えている場合; Debug Locationツールバーを有効にします([View]-> [Toolbars]-> [Debug Location])

デバッグを開始し、[一時停止とシャットダウン]オプションを選択します。

OnSuspendingイベントで未処理の例外が発生しました。

于 2012-09-24T13:44:37.870 に答える
1

この質問にアクセスして、ダンプがない、実際のクラッシュやハングの兆候がない、アプリケーションイベントログにWindowsエラー報告からの新しいエントリが表示されない理由を理解していないすべての人のために、レシピがあります。

アプリケーションイベントログをクリアします。

私の場合、次の問題が発生しました。QAが将来、アプリケーション固有のものをテストするためにデバイス時間を設定したことがあります。運が悪かったので、WACKを立ち上げることができました。そして、私たちのアプリはクラッシュしました。実際に時間を解いた後、WACKクラッシュに合格し、そのデバイスでテストを再度ハングさせることはできませんでした。その理由は、WACK自体がWindowsイベントログを使用してWindowsエラー報告からのレポートを検索しているように見えるためです。そしてこの場合、将来、それらが実際にまだそこにあるので、それらを見つけます。さらに悪いことに、これらの将来のエントリは、タイムスタンプに関係なく後で到着したエントリによってデフォルトのイベントビューの一番下にプッシュされるため、イベントログを日付と時刻で明示的に並べ替えない限り見づらいです。

誰かのヘッドバンを数時間節約できたらいいのにと思います。

于 2013-12-02T12:03:42.443 に答える
0

UACをオフにしている場合は、これらの「クラッシュとハング」テストにも失敗します。

于 2014-07-03T23:47:32.263 に答える