Essayer de déboguer Windows Store App à partir de fichiers de vidage

Permettez-moi de commencer par les questions principales. Ensuite, j’appendai ci-dessous des détails et un historique. J’ai fait des recherches, mais je n’arrive pas à faire le lien. S’il vous plaît demander des précisions avant de me baisser.

Mes questions:
Pourquoi mon application Windows Store doit-elle démarrer et fonctionner correctement localement sur ma tablette Win 8.1 64 bits ET ma tablette 8.1 (32 bits) Win 8.1, mais ne pas démarrer pour les autres utilisateurs?

Lorsque le fichier de vidage provient d’un échec de la certificateion du Windows Store, comment puis-je faire en sorte que les symboles de débogage fonctionnent afin que je puisse voir davantage le problème?

Lorsque je crée en mode “Release”, les symboles sont-ils placés dans les fichiers .pdb? Et cela indexe-t-il les symboles?

Voici l’histoire:
J’ai développé un petit jeu sous forme d’application universelle, Win Phone et Windows Store. La version Win Phone est dans le magasin, en cours de téléchargement, et fonctionne bien.

La version du Windows Store a des problèmes.

Il fonctionne sur ma machine, Win 8.1 64 bits. Il fonctionne sur ma tablette, Win 8.1 Atom, que j’installe via Remote Debug à partir de Visual Studio. Il passe la certificateion de l’application ici sur ma boîte. Mais lorsque je soumets le package au Windows Store, il ne passe pas et le rapport indique qu’il se bloque lors du démarrage. (D’une manière ou d’une autre, le premier package appx a été publié sur le magasin, puis plus tard, ils ont répondu qu’il se bloquait. Certains utilisateurs disent que l’application ne se charge pas.)

Alors, je télécharge les données de débogage et ouvre le fichier .dmp. Je reçois le code d’exception 0xC000027B

En fouillant en ligne, je trouve qu’il s’agit d’une “exception de langue” et qu’il s’agit d’une erreur générale indiquant que le bogue était Unmanled. Articles suivants comme celui-ci ( http://blogs.msdn.com/b/ntdebugging/archive/2014/01/13/debugging-a-windows-8-1-store-app-crash-dump.aspx )

J’essaie de charger les symboles de mon application pour voir si cela aidera. J’ai ajouté un dossier pour mon application à mon dossier de cache de symboles local (c: \ symboles \ myApp \ 1.3.0.7) en pensant que Visual studio les récupérait et j’ai copié les fichiers .exe, .dll et .pdb du package apx que j’avais envoyé au magasin, mais que je reçois toujours ces messages:

‘WER38D7.tmp.dmp’ (Minidump): Chargé ‘* CryptoQuoteW8cs.exe’. Le module a été construit sans symboles.
‘WER38D7.tmp.dmp’ (CLR v4.0.30319:): Chargement du fichier ‘* CryptoQuoteW8cs.exe’. Aucun fichier binary correspondant trouvé.
‘WER38D7.tmp.dmp’ (CLR v4.0.30319:): Chargement du fichier ‘* CryptoLogic.DLL’. Aucun fichier binary correspondant trouvé.
Une exception fatale a été interceptée par le runtime. Voir $ stowedexception dans la fenêtre de surveillance pour afficher les informations sur l’exception d’origine.

Donc, je suis perdue. Comment faire fonctionner mon application? Quelle erreur le retient? Pourquoi cela fonctionne-t-il et passe-t-il la certificateion localement, mais pas dans le magasin? Comment puis-je savoir? Je suis allé sur Bing et Microsoft, et peut-être que je ne cherche tout simplement pas la bonne chose. S’il vous plaît aider!

Modifier:
De Windbag, je reçois cette stack d’appels.

combase!RoFailFastWithErrorContextInternal2(HRESULT hrError = 0xaaaaaaaa, unsigned long cStowedExceptions = 0xaaaaaaaa, struct _STOWED_EXCEPTION_INFORMATION_V2 ** aStowedExceptionPointers = 0xaaaaaaaa)+0x10a [d:\blue_gdr\com\combase\winrt\error\error.cpp @ 1035] combase!RoFailFastWithErrorContextInternal(HRESULT hrError = 0xaaaaaaaa, unsigned long cStowedExceptions = 0xaaaaaaaa, struct _STOWED_EXCEPTION_INFORMATION_V1 ** aStowedExceptionPointers = 0xaaaaaaaa)+0x10b [d:\blue_gdr\com\combase\winrt\error\error.cpp @ 948] kernel32!BaseThreadInitThunk+0xe ntdll!__RtlUserThreadStart+0x20 ntdll!_RtlUserThreadStart+0x1b 

ok, avec l’aide de l’ extension Windbg PDE.dll de Andrew Richards , je constate que votre application se bloque à cause d’une exception System.UnauthorizedAccessException non gérée.

J’ai utilisé !PDE.dpx -dse pour !PDE.dpx -dse toutes les exceptions stockées (ces exceptions 0xC000027B):

 0:006> !PDE.dpx -dse Start memory scan : 0x0551fc7c ($csp) End memory scan : 0x05520000 (User Stack Base) 0x0551fc94 : 0x012db914 : !dse combase!STOWED_EXCEPTION_INFORMATION_V1 0x0551fcdc : 0x0163c168 : !dse combase!STOWED_EXCEPTION_INFORMATION_V1 

Maintenant j’utilise! PDE.dse pour afficher ses données:

 0:006> !PDE.dse 0551fc94 Stowed Exception Array @ 0x0551fc94 Stowed Exception #1 @ 0x012db914 0x80070005 (FACILITY_WIN32 - Win32 Undecorated Error Codes): E_ACCESSDENIED - General access denied error Stack : 0x163c528 770ba9f1 combase!RoOriginateLanguageException+0x3b 6f137872 clr!SetupErrorInfo+0x1e1 6f1fbc91 clr!MarshalNative::GetHRForException_WinRT+0x7d >>> Associated CLR Exception <<< Exception object: 02b424f8 Exception type: System.UnauthorizedAccessException Message:  InnerException:  StackTrace (generated): SP IP Function 00000000 00000001 UNKNOWN!UNKNOWN+0x2 0551FC58 015702E9 CryptoQuoteW8cs!UNKNOWN+0x81 0551FC6C 01570251 CryptoQuoteW8cs!UNKNOWN+0x11 StackTraceSsortingng:  HResult: 80070005 0:006> !PDE.dse 0163c168 Stowed Exception Array @ 0x0163c168 Stowed Exception #1 @ 0x012db914 0x80070005 (FACILITY_WIN32 - Win32 Undecorated Error Codes): E_ACCESSDENIED - General access denied error Stack : 0x163c528 770ba9f1 combase!RoOriginateLanguageException+0x3b 6f137872 clr!SetupErrorInfo+0x1e1 6f1fbc91 clr!MarshalNative::GetHRForException_WinRT+0x7d >>> Associated CLR Exception <<< Exception object: 02b424f8 Exception type: System.UnauthorizedAccessException Message:  InnerException:  StackTrace (generated): SP IP Function 00000000 00000001 UNKNOWN!UNKNOWN+0x2 0551FC58 015702E9 CryptoQuoteW8cs!UNKNOWN+0x81 0551FC6C 01570251 CryptoQuoteW8cs!UNKNOWN+0x11 StackTraceSsortingng:  HResult: 80070005 Stowed Exception #2 @ 0x01639748 0x80070005 (FACILITY_WIN32 - Win32 Undecorated Error Codes): E_ACCESSDENIED - General access denied error Stack : 0x69d29c4 6d33bd5e Windows_UI_Xaml!DirectUI::Application::MainASTAInitialize+0xa9 6d33bb05 Windows_UI_Xaml!DirectUI::FrameworkView::Initialize+0x5a 6dc5a597 twinapi_appcore!Windows::ApplicationModel::Core::CoreApplicationView::CreateAndInitializeFrameworkView+0xa7 6dc5a6eb twinapi_appcore!Windows::ApplicationModel::Core::CoreApplicationView::CreateAndInitializeFrameworkView+0x1fb 74b2a83a SHCore!Microsoft::WRL::RuntimeClass,CScalingInfoBase,Microsoft::WRL::FtmBase,Microsoft::WRL::Details::Nil,Microsoft::WRL::Details::Nil,Microsoft::WRL::Details::Nil,Microsoft::WRL::Details::Nil,Microsoft::WRL::Details::Nil,Microsoft::WRL::Details::Nil,Microsoft::WRL::Details::Nil>::`vector deleting destructor'+0x189 772c919f kernel32!BaseThreadInitThunk+0xe 775a0bbb ntdll!__RtlUserThreadStart+0x20 775a0b91 ntdll!_RtlUserThreadStart+0x1b 

Ici, vous pouvez voir que le problème sous-jacent est l’exception System.UnauthorizedAccessException. Le dmp est seulement un minidump, donc je ne peux pas voir ce que fait CryptoQuoteW8cs!UNKNOWN+0x81 .

Utilisez l’ événement Application.UnhandledException pour gérer une exception que vous n’avez pas gérée via try / catch afin d’éviter que l’application ne se bloque.

Voici un bon guide sur la façon de gérer les exceptions:

Stratégies de gestion des erreurs dans votre Windows Store Apps