Ignore:
Timestamp:
Sep 24, 2015, 10:17:45 AM (8 years ago)
Author:
roman
Message:

Fixed problem with RtlCaptureContext? API call possibly crashing hosting process, also stack walk enabled for x64

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/DirectShowSpy/FilterGraphSpy.h

    r503 r519  
    15401540        {
    15411541                _Z4(atlTraceCOM, 4, _T("nEventCode %s, nParameter1 0x%p, nParameter2 0x%p\n"), _FilterGraphHelper::FormatEventCode(nEventCode), nParameter1, nParameter2);
    1542                 #if defined(_M_IX86)
    1543                         // WARN: Guarding section around might be preventing from walknig frame up the stack
     1542                //#if defined(_M_IX86)
     1543                        // WARN: Guarding section around might be preventing from walking frame up the stack
     1544                        // WARN: No guarding section however might cause hosting application crash, within RtlCaptureContext API unfortunately
    15441545                        if(nEventCode == EC_ERRORABORT) // || nEventCode == EC_VIDEO_SIZE_CHANGED)
    1545                         {
    1546                                 CONTEXT ThreadContext = { CONTEXT_FULL };
    1547                                 GetCurrentThreadContext(&ThreadContext);
    1548                                 CDebugTraceCallStack::TraceCallStack(ThreadContext, 32); //(nEventCode == EC_ERRORABORT) ? 32 : 8);
    1549                         }
    1550                 #endif // defined(_M_IX86)
     1546                                _ATLTRY
     1547                                {
     1548                                        CONTEXT ThreadContext = { CONTEXT_FULL };
     1549                                        GetCurrentThreadContext(&ThreadContext);
     1550                                        CDebugTraceCallStack::TraceCallStack(ThreadContext, 32); //(nEventCode == EC_ERRORABORT) ? 32 : 8);
     1551                                }
     1552                                _ATLCATCHALL()
     1553                                {
     1554                                        _Z_EXCEPTION();
     1555                                }
     1556                //#endif // defined(_M_IX86)
    15511557                if(!m_pInnerMediaEventSink)
    15521558                        return S_FALSE;
Note: See TracChangeset for help on using the changeset viewer.