Aqui estão algumas saídas quando eu o executo no depurador do Microsoft WinDbg:
Break-in sent, waiting 30 seconds...
WARNING: Break-in timed out, suspending.
This is usually caused by another thread holding the loader lock
(36a4.2fc8): Wake debugger - code 80000007 (first chance)
Veja StackOverflow o que é um bloqueio de carregador .
Isso realmente acontece muito cedo no procedimento de inicialização do programa.
Na pilha de chamadas, vejo
0:000> k
# Child-SP RetAddr Call Site
00 00000000'0020e9f8 00000000'771eaa78 ntdll!ZwWaitForKeyedEvent+0xa
01 00000000'0020ea00 00000000'771eabe2 ntdll!TppWaitpSet+0x1f1
02 00000000'0020eaa0 00000000'771ed0c4 ntdll!TppSetWaitInterrupt+0xa2
03 00000000'0020eb90 00000000'770bee49 ntdll!RtlRegisterWait+0x1e4
04 00000000'0020ec60 000007fe'd7252e98 kernel32!RegisterWaitForSingleObject+0x59
[...]
MSVCR120!Concurrency::critical_section::lock+0x2a [f:\dd\vctools\crt\crtw32\concrt\rtlocks.cpp @ 1031]
[...]
17 00000000'0020f790 00000000'00000000 ntdll!LdrInitializeThunk+0xe
Então, isso pode ser (mas não precisa ser) um impasse: o segmento bloqueou uma seção crítica antes e agora está aguardando outra coisa. É difícil dizer no x64, já que obter os argumentos não é tão fácil. Caso contrário, poderíamos atravessar a cadeia de espera.