Dart starts dbghelp's symbol handler for its crash reports and stopped at
SymSetOptions. The handler now keeps its options (SymSetOptions,
SymGetOptions), starts and ends for a process (SymInitialize,
SymInitializeW, SymCleanup), and answers what StackWalk64 asks of it: the
function table entry of a code address, as RtlLookupFunctionEntry finds it
(SymFunctionTableAccess64), and the base of its module, as
RtlPcToFileHeader finds it (SymGetModuleBase64). No symbol files are read,
so nothing is named. dart run and dart compile exe work.
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the symbol handler functions
(cherry picked from commit 8633efab8f291607af4855ee40008669ba301387)
Programs built without kernel32 imports, Zig's among them, call ntdll's
RtlUpcaseUnicodeChar, RtlQueryPerformanceCounter and
RtlQueryPerformanceFrequency, RtlAddVectoredExceptionHandler and its
relatives, and leave through RtlExitUserProcess. Each is the function
kernel32 has (CharUpper of one character, QueryPerformanceCounter and
QueryPerformanceFrequency, AddVectoredExceptionHandler and the others,
ExitProcess) and now runs the same handler.
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the added names
(cherry picked from commit 6b9a401a7364d6aa1a360ee6217ef53bb3aa9456)