clr.dll!LogHelp_TerminateOnAssert in a .NET 4.0 process

后端 未结 2 696
南方客
南方客 2021-02-12 13:49

Background: I am working on a WinForm based .NET 4.0 desktop application that has few threads and timers and uses some GDI processing for user controls. During

相关标签:
2条回答
  • 2021-02-12 14:11

    You mention using threads - since each thread gets its own stack it could be that the default stack size is being exceeded at some point causing the exception which is then trapped by the .NET runtime. What kind of work are you doing in the threads (recursion, lots of stack variables, etc)?

    I believe default thread stack size is set at 1MB - try setting the stack size to 4MB in the thread constructor and see if the error persists.

    0 讨论(0)
  • 2021-02-12 14:25

    clr.dll!LogHelp_TerminateOnAssert+0x58f68

    The large number (+58f68) indicates that the actual method in clr.dll is far away from LogHelp_TerminateOnAssert(). You should probably fix the symbols and try again in order to get the correct call stack. You can then find out what the real method is.

    It's not LogHelp_TerminateOnAssert(), so it's useless to find out what LogHelp_TerminateOnAssert() does.

    To fix the symbols: in Process Explorer, go to Options/Configure Symbols, then enter

    SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
    

    where c:\symbols is the path where you want to store the downloaded files.

    0 讨论(0)
提交回复
热议问题