Trying to debug a Windows Store application from dump files

Let me start with my basic questions, then below I will add some features and history. I was engaged in research, but it seemed that I could not combine them. Please ask for clarification before voting for me.

My questions:
Why does the Windows Store app launch and run locally on my 64-bit Win 8.1 and my 32-bit (Atom) Win 8.1 tablet, but not for other users?

When I get a dump file from a Windows Store certification failure, how can I get debugging symbols to work, so I see more problems?

When I create "Release" mode, does it really put characters in .pdb files? And are the characters indexed?

Here's the story:
I developed a small game as a universal application, Win Phone and Windows Store. The Win Phone version is in the store, loading and working fine.

The Windows Store version is having problems.

It works on my machine, Win 8.1 64bit. It works on my tablet, Win 8.1 Atom, which I install via Remote Debug from Visual Studio. He passes the certification of applications here on my box. But when I submit the package to the Windows Store, it fails, and the report says that it crashes at startup. (Somehow, the first appx package was released in the store, and then they replied that it crashed, so some users say that the application does not load.)

So, I load the debug data and open the .dmp file. I get exception code 0xC000027B

Digging on the Internet, I find this to be a “Language Exception”, and is a common mistake, indicating that the error was unhandled. The following articles ( http://blogs.msdn.com/b/ntdebugging/archive/2014/01/13/debugging-a-windows-8-1-store-app-crash-dump.aspx )

I am trying to download characters for my application to see if this helps. I added the folder for my application to the local symbol cache folder (c: \ symbols \ myApp \ 1.3.0.7), thinking that Visual studio will pick them up and copy the .exe, .dll and .pdb files from the apx package that I sent to the store but still get the following messages:

'WER38D7.tmp.dmp' (Minidump): Loaded '* CryptoQuoteW8cs.exe'. The module was built without characters.
'WER38D7.tmp.dmp' (CLR v4.0.30319 :): Loaded '* CryptoQuoteW8cs.exe'. No matches found.
'WER38D7.tmp.dmp' (CLR v4.0.30319 :): Loaded '* CryptoLogic.DLL'. No matches found.
An initial exception was detected at runtime. See $ Stowedexception in the Watch window for initial exception information.

So, I am at a loss. How to make the application work? What mistake keeps him up? Why does it work and pass certification at the local level, but not in the store? How can I find out? I've been all over Bing and Microsoft, and maybe I just wasn't looking for the right things. Please, help!

Edit:
From the airbag, I get this call stack.

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 
0
source share
1 answer

ok, using Windbg Extension PDE.dll from Andrew Richards , I see that your application crashes due to an unhandled System.UnauthorizedAccessException .

I used !PDE.dpx -dse to display all hidden exceptions (these exceptions are 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 

Now I use PDE.dse to display its data:

 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: <Invalid Object> InnerException: <none> StackTrace (generated): SP IP Function 00000000 00000001 UNKNOWN!UNKNOWN+0x2 0551FC58 015702E9 CryptoQuoteW8cs!UNKNOWN+0x81 0551FC6C 01570251 CryptoQuoteW8cs!UNKNOWN+0x11 StackTraceString: <none> 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: <Invalid Object> InnerException: <none> StackTrace (generated): SP IP Function 00000000 00000001 UNKNOWN!UNKNOWN+0x2 0551FC58 015702E9 CryptoQuoteW8cs!UNKNOWN+0x81 0551FC6C 01570251 CryptoQuoteW8cs!UNKNOWN+0x11 StackTraceString: <none> 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<Microsoft::WRL::RuntimeClassFlags<2>,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 

Here you can see that the litter problem is a System.UnauthorizedAccessException exception. Dmp is just a mini drive, so I don’t see what CryptoQuoteW8cs!UNKNOWN+0x81 does.

Use the Application.UnhandledException event to handle an exception that you did not handle with try / catch to prevent the application from crashing.

Here is a good guide to handling exceptions:

Error Handling Strategies for Windows Store Applications

+1
source

Source: https://habr.com/ru/post/984454/


All Articles