getsentry / symbolicator

Native Symbolication as a Service
https://getsentry.github.io/symbolicator/
MIT License
362 stars 51 forks source link

symbol minidump failed, Epic Game Editor (UE4) #1495

Closed Doslin closed 4 months ago

Doslin commented 4 months ago

Environment

local What version are you running? Etc. 24.6.0

Steps to Reproduce

  1. sort pdb file pdb file
  2. start local Symbolicator
  3. reuqest local server
    curl --request POST \
    --url http://localhost:3021/minidump \
    --header 'content-type: multipart/form-data' \
    --form upload_file_minidump=@/Users/doude/Downloads/UE4-Crash/Crashes/crash-write-null-point.dmp
  4. get reponse

    crash-write-null-point can symbol correct ✔️

flie: crash-write-null-point.dmp

Symbolicator result:

image

crash-use-assert can't symbol ❌

crash-use-assert.dmp

Symbolicator result:

image

Expected Result

when i use MinidumpDiagnostics.exe ,all dump can symbol correct MinidumpDiagnostics.exe.zip image

crash-write-null-point

CrashContext.runtime-xml

<?xml version="1.0" encoding="UTF-8"?>
<FGenericCrashContext>
    <RuntimeProperties>
        <CrashVersion>3</CrashVersion>
        <CrashGUID>UE4CC-Windows-95FA3973436950C5C28ACDB8CB1003E5_0000</CrashGUID>
        <CallStack></CallStack>
    </RuntimeProperties>
</FGenericCrashContext>

xml will insert CallStack by .\MinidumpDiagnostics.exe crash-write-null-point.dmp -DebugSymbols="D:\ProjectFile\ue4-crash-dir\pdb_v0.37.0.0.20240704101036\WindowsNoEditor" image CrashContext.runtime-xml result

<?xml version="1.0" encoding="UTF-8"?>
<FGenericCrashContext>
    <RuntimeProperties>
        <CrashVersion>3</CrashVersion>
        <CrashGUID>UE4CC-Windows-95FA3973436950C5C28ACDB8CB1003E5_0000</CrashGUID>
        <CallStack>
UE4_MWEdCore!SMWEdSystemToolBar::Construct::<unnamed-tag>::operator()() [C:\builds\0\metabuild\metaworldeditor\Plugins\MWEd\MWEdCore\Source\Private\Slate\SMWEdSystemToolBar.cpp:165]
UE4_MWEdCore!UE4Tuple_Private::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter<`lambda at C:/builds/0/metabuild/metaworldeditor/Plugins/MWEd/MWEdCore/Source/Private/Slate/SMWEdSystemToolBar.cpp:161:26' &>() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Core\Public\Templates\Tuple.h:299]
UE4_MWEdCore!TBaseFunctorDelegateInstance<FReply (),FDefaultDelegateUserPolicy,`lambda at C:/builds/0/metabuild/metaworldeditor/Plugins/MWEd/MWEdCore/Source/Private/Slate/SMWEdSystemToolBar.cpp:161:26'>::Execute() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:830]
UE4_Slate!SButton::ExecuteOnClick() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Slate\Private\Widgets\Input\SButton.cpp:387]
UE4_Slate!SButton::OnMouseButtonUp() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Slate\Private\Widgets\Input\SButton.cpp:304]
UE4_Slate!FSlateApplication::RoutePointerUpEvent() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:4829]
UE4_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5370]
UE4_Slate!FSlateApplication::OnMouseUp() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5335]
UE4_ApplicationCore!FWindowsApplication::ProcessDeferredMessage() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2178]
UE4_ApplicationCore!FWindowsApplication::DeferMessage() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2642]
UE4_ApplicationCore!FWindowsApplication::ProcessMessage() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:979]
UE4_ApplicationCore!FWindowsApplication::AppWndProc() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:877]
user32
user32
UE4_ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsPlatformApplicationMisc.cpp:130]
UE4!FEngineLoop::Tick() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:4819]
UE4!GuardedMain() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Launch\Private\Launch.cpp:169]
UE4!GuardedMainWrapper() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:152]
UE4!WinMain() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:269]
UE4!__scrt_common_main_seh() [d:\a01\_work\12\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll
</CallStack>
    </RuntimeProperties>
</FGenericCrashContext>

crash-use-assert

CrashContext.runtime-xml

<?xml version="1.0" encoding="UTF-8"?>
<FGenericCrashContext>
    <RuntimeProperties>
        <CrashVersion>3</CrashVersion>
        <CrashGUID>UE4CC-Windows-6344129747D81478CA0CF89964E30955_0001</CrashGUID>
        <CallStack></CallStack>
        </RuntimeProperties>
</FGenericCrashContext>

xml will insert CallStack by .\MinidumpDiagnostics.exe crash-use-assert.dmp -DebugSymbols="D:\ProjectFile\ue4-crash-dir\pdb_v0.37.0.0.20240704101036\WindowsNoEditor"

CrashContext.runtime-xml

<?xml version="1.0" encoding="UTF-8"?>
<FGenericCrashContext>
    <RuntimeProperties>
        <CrashVersion>3</CrashVersion>
        <CrashGUID>UE4CC-Windows-6344129747D81478CA0CF89964E30955_0001</CrashGUID>
        <CallStack>
ucrtbase
ucrtbase
ucrtbase
UE4_Core!FMsg::Logf_InternalImpl() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Core\Private\Logging\LogMacros.cpp:92]
UE4_Core!FDebug::CheckVerifyFailedImpl::<unnamed-tag>::operator()<FLogCategoryLogTemp,wchar_t [5],int>() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp:457]
UE4_Core!FDebug::CheckVerifyFailedImpl() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp:459]
UE4_MWEdCore!FDebug::CheckVerifyFailed<wchar_t [55],int,int>() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Core\Public\Misc\AssertionMacros.h:160]
UE4_MWEdCore!TArray<int,TSizedDefaultAllocator<32> >::RangeCheck::<unnamed-tag>::operator()() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Core\Public\Containers\Array.h:674]
UE4_MWEdCore!DispatchCheckVerify<void,`lambda at C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Core\Public\Containers/Array.h:674:4'>() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Core\Public\Misc\AssertionMacros.h:169]
UE4_MWEdCore!SMWEdSystemToolBar::Construct::<unnamed-tag>::operator()() [C:\builds\0\metabuild\metaworldeditor\Plugins\MWEd\MWEdCore\Source\Private\Slate\SMWEdSystemToolBar.cpp:198]
UE4_MWEdCore!UE4Tuple_Private::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter<`lambda at C:/builds/0/metabuild/metaworldeditor/Plugins/MWEd/MWEdCore/Source/Private/Slate/SMWEdSystemToolBar.cpp:194:26' &>() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Core\Public\Templates\Tuple.h:299]
UE4_MWEdCore!TBaseFunctorDelegateInstance<FReply (),FDefaultDelegateUserPolicy,`lambda at C:/builds/0/metabuild/metaworldeditor/Plugins/MWEd/MWEdCore/Source/Private/Slate/SMWEdSystemToolBar.cpp:194:26'>::Execute() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:830]
UE4_Slate!SButton::ExecuteOnClick() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Slate\Private\Widgets\Input\SButton.cpp:387]
UE4_Slate!SButton::OnMouseButtonUp() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Slate\Private\Widgets\Input\SButton.cpp:304]
UE4_Slate!FSlateApplication::RoutePointerUpEvent() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:4829]
UE4_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5370]
UE4_Slate!FSlateApplication::OnMouseUp() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5335]
UE4_ApplicationCore!FWindowsApplication::ProcessDeferredMessage() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2178]
UE4_ApplicationCore!FWindowsApplication::DeferMessage() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2642]
UE4_ApplicationCore!FWindowsApplication::ProcessMessage() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:979]
UE4_ApplicationCore!FWindowsApplication::AppWndProc() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:877]
user32
user32
UE4_ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsPlatformApplicationMisc.cpp:130]
UE4!FEngineLoop::Tick() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:4819]
UE4!GuardedMain() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Launch\Private\Launch.cpp:169]
UE4!GuardedMainWrapper() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:152]
UE4!WinMain() [C:\builds\0\metabuild\unrealengine\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:269]
UE4!__scrt_common_main_seh() [d:\a01\_work\12\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll
</CallStack>
    </RuntimeProperties>
</FGenericCrashContext>

Actual Result

crash-use-assert can't symbol ❌

crash-use-assert.dmp

Symbolicator result:

image

### Tasks
Swatinem commented 4 months ago

I believe the primary problem is that you are missing microsoft system symbols. In your screenshot, there is trust: scan, which indicates the results have low quality and might be completely incorrect.

I would recommend you also add the microsoft symbol server, there is examples of it floating around in the repository.

I also recommend that you use the symbolicli executable, which is a much better replacement than starting the symbolicator http server and using curl.