dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.96k stars 4.65k forks source link

[mono] stackoverflow exception hit thread mode assert #96523

Open srxqds opened 8 months ago

srxqds commented 8 months ago

the ouput:

0x00007FFA4791264F (ucrtbase.dll)处(位于 UE4Editor.exe 中)引发的异常: 0xC00000FD: Stack overflow (参数: 0x0000000000000001, 0x0000005F30211FF8)。
[2024.01.05-11.29.43:889][303]MonoVM: Error: [][error]Assertion failure in thread 0000000000009064 due to: E:\work\netease-gitlab\dotnet\runtime\src\mono\mono\mini\mini-exceptions.c:2880: Expected GC Unsafe mode but was in STATE_BLOCKING state
Last 2 state transitions: (most recent first)
[ABORT_BLOCKING] STATE_BLOCKING -> RUNNING (0) 0 at:
    no backtrace available
[DO_BLOCKING] RUNNING -> STATE_BLOCKING (0) 0 at:
    no backtrace available

the stacktrace:

    UE4Editor-UnrealMonoRuntime.dll!OnMonoLog(const char * LogDomain, const char * InLogLevel, const char * Message, int Flag, int HandlerType) 行 99    C++
    UE4Editor-UnrealMonoRuntime.dll!MonoLog(const char * log_domain, const char * log_level, const char * message, int fatal, void * user_data) 行 182   C++
    coreclr.dll!eglib_log_adapter(const char * log_domain, GLogLevelFlags log_level, const char * message, void * user_data) 行 395  C
    coreclr.dll!monoeg_g_logstr(const char * log_domain, GLogLevelFlags log_level, const char * msg) 行 152  C
    coreclr.dll!monoeg_g_logv_nofree(const char * log_domain, GLogLevelFlags log_level, const char * format, char * args) 行 167 C
    coreclr.dll!monoeg_g_logv(const char * log_domain, GLogLevelFlags log_level, const char * format, char * args) 行 173    C
    coreclr.dll!monoeg_g_log(const char * log_domain, GLogLevelFlags log_level, const char * format, ...) 行 183 C
    coreclr.dll!mono_fatal_with_history(const char * volatile msg, ...) 行 353   C
    coreclr.dll!assert_gc_unsafe_mode(const char * file, int lineno) 行 402  C
>   coreclr.dll!mono_handle_exception(MonoContext * ctx, void * void_obj) 行 2880    C
    coreclr.dll!mono_arch_handle_exception(void * sigctx, void * obj) 行 825 C
    coreclr.dll!seh_vectored_exception_handler(_EXCEPTION_POINTERS * ep) 行 155  C
    ntdll.dll!00007ffa49f5c49a()    未知
    ntdll.dll!00007ffa49f159a2()    未知
    ntdll.dll!00007ffa49f87afe()    未知
    ucrtbase.dll!00007ffa4791264f() 未知
    ucrtbase.dll!00007ffa4791231b() 未知
    ucrtbase.dll!00007ffa4791204f() 未知
    [内联框架] UE4Editor-Core.dll!_vswprintf_c_l(wchar_t * const) 行 1161    C++
    [内联框架] UE4Editor-Core.dll!vswprintf(wchar_t * const) 行 1248 C++
    [内联框架] UE4Editor-Core.dll!FMicrosoftPlatformString::GetVarArgs(wchar_t *) 行 136 C++
    [内联框架] UE4Editor-Core.dll!TCString<wchar_t>::GetVarArgs(wchar_t *) 行 876    C++
    UE4Editor-Core.dll!FString::PrintfImpl(const wchar_t * Fmt, ...) 行 1326 C++
    [内联框架] UE4Editor-Core.dll!FString::Printf(const wchar_t[5] & <Args_0>, int) 行 1560  C++
    UE4Editor-Core.dll!FDateTime::ToString(const wchar_t * Format) 行 276    C++
    UE4Editor-Core.dll!FOutputDeviceHelper::FormatLogLine(ELogVerbosity::Type Verbosity, const FName & Category, const wchar_t * Message, ELogTimes::Type LogTime, const double Time) 行 29  C++
    UE4Editor-Core.dll!FOutputDeviceHelper::FormatCastAndSerializeLine(FArchive & Output, const wchar_t * Data, ELogVerbosity::Type Verbosity, const FName & Category, const double Time, bool bSuppressEventTag, bool bAutoEmitLineTerminator) 行 87    C++
    UE4Editor-Core.dll!FOutputDeviceFile::Serialize(const wchar_t * Data, ELogVerbosity::Type Verbosity, const FName & Category, const double Time) 行 511   C++
    UE4Editor-Core.dll!FOutputDeviceRedirector::SerializeImpl<FName const>(const wchar_t * Data, ELogVerbosity::Type Verbosity, const FName & Category, const double Time) 行 417    C++
    UE4Editor-Core.dll!FOutputDeviceRedirector::RedirectLog(const FName & Category, ELogVerbosity::Type Verbosity, const wchar_t * Data) 行 437  C++
    UE4Editor-Core.dll!FMsg::Logf_InternalImpl(const char * File, int Line, const FName & Category, ELogVerbosity::Type Verbosity, const wchar_t * Fmt, ...) 行 97   C++
    UE4Editor-UnrealBridgeRuntime.dll!<lambda_8bff18fa07970bb54540897965b9f8f7>::operator()<FLogCategoryLogMono,wchar_t [3],wchar_t const *>(const FLogCategoryLogMono & LCategoryName, const wchar_t[3] & LFormat, const wchar_t * const & <UE_LOG_Args_0>) 行 21   C++
    UE4Editor-UnrealBridgeRuntime.dll!Internal_UELog_Log(ELogVerbosity::Type LogVerbosity, _MonoString * Text) 行 22 C++
srxqds commented 7 months ago

hi, how i check current stack size to defense the stackoverflow