Closed
Bug 775378
Opened 13 years ago
Closed 13 years ago
Exceptions in winrt event callbacks fail to trigger the exception handler
Categories
(Toolkit :: Crash Reporting, defect)
Tracking
()
RESOLVED
FIXED
mozilla17
People
(Reporter: jimm, Assigned: jimm)
References
Details
(Whiteboard: completed-elm)
Attachments
(1 file)
4.18 KB,
patch
|
ted
:
review+
|
Details | Diff | Splinter Review |
Haven't had a chance to dig into this yet. Basically when we're in winrt callbacks, the runtime handles exceptions directly rather than calling our handlers. try-catch com exception handling doesn't avoid this. Typical stacks:
msvcr110.dll!_invoke_watson(const wchar_t * pszExpression=0x02c307d0, const wchar_t * pszFunction=0x005ea040, const wchar_t * pszFile=0x05541b58, unsigned int nLine=47643288, unsigned int pReserved=47643316) Line 131 C++
vccorlib110.dll!__abi_FailFast() Line 18 C++
xul.dll!?__abi_Windows_Foundation_?$TypedEventHandler@P$AAVCoreWindow@Core@UI@Windows@@P$AAVKeyEventArgs@234@___abi_IDelegate____abi_Invoke@?Q__abi_IDelegate@?$TypedEventHandler@P$AAVCoreWindow@Core@UI@Windows@@P$AAVKeyEventArgs@234@@Foundation@Windows@@234@U$AAGJP$AAVCoreWindow@Core@UI@4@P$AAVKeyEventArgs@674@@Z(Windows::UI::Core::CoreWindow ^ __param0=0x005ea040, Windows::UI::Core::KeyEventArgs ^ __param1=0x05541b58) C++
Windows.UI.dll!660a1871() Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for Windows.UI.dll]
Windows.UI.dll!660b3c3c() Unknown
Windows.UI.dll!660adf1e() Unknown
user32.dll!_InternalCallWinProc@20() Unknown
user32.dll!_UserCallWinProcCheckWow@36() Unknown
user32.dll!_CallWindowProcAorW@24() Unknown
user32.dll!_CallWindowProcW@20() Unknown
xul.dll!MetroWidget::WindowProcedure(HWND__ * aWnd=0x000f0418, unsigned int aMsg=256, unsigned int aWParam=68, long aLParam=2097153) Line 282 C++
user32.dll!_InternalCallWinProc@20() Unknown
user32.dll!_UserCallWinProcCheckWow@36() Unknown
user32.dll!_DispatchMessageWorker@8() Unknown
user32.dll!_DispatchMessageW@4() Unknown
Windows.UI.dll!660a1916() Unknown
ntdll.dll!_RtlReleaseSRWLockExclusive@4() Unknown
0068e365() Unknown
xul.dll!Windows::ApplicationModel::DataTransfer::IDataPackagePropertySet::Title::set(Platform::String ^ __param0=0x00000002) C++
xul.dll!mozilla::widget::winrt::FrameworkView::[Windows::ApplicationModel::Core::IFrameworkView]::Run() Line 85 C++
for a null deref in the key down event handler. We'll need to figure out what's going on here and fix it, the resulting exception brings up windows error reporting.
![]() |
Assignee | |
Updated•13 years ago
|
Blocks: metro-testing
![]() |
Assignee | |
Comment 1•13 years ago
|
||
The generated code traps these:
namespace Windows
{
namespace Foundation
{
__declspec ( no_refcount ) inline long __stdcall :: Windows :: Foundation :: ?$TypedEventHandler...
{
long __hr = 0 ;
try
{
Invoke ( __param0 , __param1 ) ;
}
catch ( :: Platform :: Exception ^ __param0 )
{
__hr = Platform :: Details :: ReCreateFromException ( __param0 ) ;
}
catch ( ... )
{
__abi_FailFast ( ) ;
}
return __hr ;
}
}
}
Comment 2•13 years ago
|
||
Horrible. Can we override __abi_FailFast?
Comment 3•13 years ago
|
||
(and just have it mozalloc_abort()?)
![]() |
Assignee | |
Comment 4•13 years ago
|
||
(In reply to Ted Mielczarek [:ted] from comment #2)
> Horrible. Can we override __abi_FailFast?
I was searching the net yesterday for a clean way to do this but didn't find much. We already do something like this for free but it requires some ugly link hacking.
Any ideas?
![]() |
Assignee | |
Comment 5•13 years ago
|
||
Since we delay load vccorlib, I think we can trap this in our DelayDllLoadHook.
![]() |
Assignee | |
Comment 6•13 years ago
|
||
Assignee: nobody → jmathies
Attachment #644763 -
Flags: review?(ted.mielczarek)
Comment 7•13 years ago
|
||
Comment on attachment 644763 [details] [diff] [review]
patch
Review of attachment 644763 [details] [diff] [review]:
-----------------------------------------------------------------
Looks sensibly crazy.
Attachment #644763 -
Flags: review?(ted.mielczarek) → review+
![]() |
Assignee | |
Comment 8•13 years ago
|
||
![]() |
Assignee | |
Updated•13 years ago
|
Whiteboard: completed-elm
Comment 9•13 years ago
|
||
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla17
Updated•11 years ago
|
OS: Windows 8 Metro → Windows 8.1
You need to log in
before you can comment on or make changes to this bug.
Description
•