dotnet-dump - Access is denied

ASP.NET Core 6.0으둜 κ°œλ°œλ˜μ–΄μ„œ μ„œλ²„μ— μœˆλ„μš° μ„œλΉ„μŠ€λ‘œ λ™μž‘λ˜λŠ” ν”„λ‘œκ·Έλž¨μ΄ μžˆμŠ΅λ‹ˆλ‹€. λ©”λͺ¨λ¦¬ λˆ„μˆ˜κ°€ μžˆμ–΄μ„œ λͺ‡μΌλ§Œ μ§€λ‚˜λ©΄ μ‚¬μš©μ€‘μΈ λ©”λͺ¨λ¦¬κ°€ λͺ‡μ‹­κΈ°κ°€κ°€ λ˜μ–΄ λ²„λ¦½λ‹ˆλ‹€.
λ©”λͺ¨λ¦¬ λˆ„μˆ˜μ˜ 원인을 μ°ΎκΈ°μœ„ν•΄ μ„œλ²„μ—μ„œ μ•„λž˜μ™€ 같이 μ‹€ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

dotnet-dump collect -p <pid>

κ·ΈλŸ¬λ‚˜ μ•„λž˜μ™€ 같이 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

Invalid process id <pid> - Access is denied. (5)

κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ 싀행해도 λ§ˆμ°¬κ°€μ§€λ‘œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.
λŒ€μƒ ν”„λ‘œκ·Έλž¨μ€ μœˆλ„μš° μ„œλΉ„μŠ€λ‘œ μ‹€ν–‰λ˜κ³  μžˆμ–΄μ„œ κΆŒν•œ 였λ₯˜κ°€ λ°œμƒν•˜λŠ”κ²ƒ κ°™μŠ΅λ‹ˆλ‹€.

μœˆλ„μš° μ„œλΉ„μŠ€λ‘œ μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ„ dotnet-dump둜 덀프λ₯Ό μƒμ„±ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒμš”?
μ•„λ‹ˆλ©΄ dotnet-dump 말고 λ©”λͺ¨λ¦¬ λˆ„μˆ˜μ˜ 원인을 μ°ΎκΈ°μœ„ν•œ 더 쒋은 방법이 μžˆμ„κΉŒμš”?
(λŒ€μƒ μ‹œμŠ€ν…œμ€ μš΄μ˜μ„œλ²„λΌμ„œ κ°œλ°œνˆ΄μ„ μ„€μΉ˜ν•  수 μ—†μœΌλ©°, λ‘œμ»¬μ—μ„œλŠ” μž¬ν˜„μ΄ 많이 κΉŒλ‹€λ‘œμ™€μ„œ μš΄μ˜μ„œλ²„μ—μ„œ 원인 뢄석을 ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.)

λ™μΌν•œ μ¦μƒμœΌλ‘œ λ³΄μ΄λŠ” 였λ₯˜κ°€ λ³΄κ³ λ˜μ–΄ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

DEL /S %TEMP%\system-commandline-sentinel-files

μœ„ λͺ…λ ΉμœΌλ‘œ ν•­λͺ©μ„ μ‚­μ œν•œ λ’€ μž¬μ‹€ν–‰ ν•˜λ³΄μ„Έμš”.

저도 이거 찾아보고 κ·ΈλŒ€λ‘œ ν–ˆλŠ”λ°λ„ μ•ˆλ˜λ”λΌκ³ μš”.
κ°μ‚¬ν•©λ‹ˆλ‹€.

μž‘μ—… κ΄€λ¦¬μžλ‘œ 덀프 ν•΄λ³΄μ„Έμš”. μ–΄μ°¨ν”Ό dotnet-dumpλŠ” μœˆλ„μš°μ˜ 경우 Windowsμ—μ„œ μ œκ³΅ν•˜λŠ” MiniDumpWriteDump APIλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€. (μ°Έκ³ : λ‹·λ„·: 2290. C# - 간이 dotnet-dump ν”„λ‘œκ·Έλž¨ λ§Œλ“€κΈ° (sysnet.pe.kr))

1개의 μ’‹μ•„μš”

Debug Diagnostic Toolλ₯Ό μ‚¬μš©ν•΄λ³΄μ‹œλŠ”κ±΄ μ–΄λ–€κ°€μš”?
MSμ—μ„œ μ§€μ›λ°›μ„λ–„λŠ” ν•΄λ‹Ή 툴둜 지원을 λ°›κ³ λŠ” ν–ˆμ—ˆμŠ΅λ‹ˆλ‹€~~
뢄석및 풀덀프가 κ°€λŠ₯ ν•©λ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€.
그런데 μž‘μ—… κ΄€λ¦¬μžλ‘œ λ€ν”„ν•˜λ‹ˆκΉŒ λ€ν”„ν•˜λŠ”λ™μ•ˆ ν”„λ‘œμ„ΈμŠ€κ°€ μΌμ‹œ μ •μ§€λ˜λ„€μš”.
λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ‘œ ν”„λ‘œμ„ΈμŠ€μ˜ λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ΄ 맀우 ν¬λ‹€λ³΄λ‹ˆ 덀프λ₯Ό μœ„ν•΄ μΌμ‹œ μ •μ§€λ˜λŠ” μ‹œκ°„λ„ 맀우 였래 κ±Έλ¦½λ‹ˆλ‹€.
μ–΄μ¨Œλ“  dotnet-dump 처럼 λ€ν”„λŠ” 잘 μƒμ„±λ©λ‹ˆλ‹€.
(ν”„λ‘œμ„ΈμŠ€ μΌμ‹œ μ •μ§€ 없이 덀프가 μƒμ„±λ˜λ©΄ 쒋을 것 κ°™μ€λ°μš”.)

1개의 μ’‹μ•„μš”

κ°μ‚¬ν•©λ‹ˆλ‹€.
ν•΄λ‹Ή 툴둜 λ€ν”„ν•΄λ΄€λŠ”λ°, dotnet-dump 만큼 닷넷에 λŒ€ν•΄ μƒμ„Έν•œ 뢄석은 μ•ˆλ˜λŠ”κ²ƒ κ°™μŠ΅λ‹ˆλ‹€.
특히 DotNetMemoryAnalysis ν•­λͺ©μ€ Failed둜 ν‘œμ‹œλ©λ‹ˆλ‹€.
(μ œκ°€ νˆ΄μ„ μ œλŒ€λ‘œ μ‚¬μš©ν•˜μ§€ λͺ»ν•˜κΈ° λ•Œλ¬ΈμΌ 수 μžˆμŠ΅λ‹ˆλ‹€.)

1개의 μ’‹μ•„μš”

이미 μ–ΈκΈ‰ν•œ λŒ€λ‘œ, dotnet-dump도 μœˆλ„μš° 버전은 MiniDump… APIλ₯Ό μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— μΌμ‹œ μ •μ§€λ˜λŠ” 것은 λ™μΌν•©λ‹ˆλ‹€.

단지, 그게 크게 λŠκ»΄μ§€λŠ” μ΄μœ λŠ” λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ΄ 크기 λ•Œλ¬Έμž…λ‹ˆλ‹€. (그에 λΉ„λ‘€ν•΄μ„œ λ””μŠ€ν¬ μ“°κΈ° μ‹œκ°„λ„ 걸리고.)

μ„€λ Ή, MiniDump… APIλ₯Ό μ“°μ§€ μ•ŠλŠ”λ‹€κ³  해도 λ€ν”„ν•˜λŠ” λ™μ•ˆμ€, 즉, GC Heap을 μ „λΆ€ λ””μŠ€ν¬μ— μ“°λŠ” λ™μ•ˆμ€ μ‚¬μš©ν•΄μ„œλŠ” μ•ˆ λ˜λ―€λ‘œ μ–΄μ°¨ν”Ό .NET λŸ°νƒ€μž„μ΄ λ©ˆμΆ°μ•Ό ν•˜λŠ” 것은 λ™μΌν•©λ‹ˆλ‹€. κ²°κ΅­ ν”„λ‘œμ„ΈμŠ€κ°€ μΌμ‹œ μ •μ§€ν•˜λŠ” 것과 λ³„λ°˜ λ‹€λ₯΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

1개의 μ’‹μ•„μš”

λ„€. μ΄ν•΄ν–ˆμŠ΅λ‹ˆλ‹€.
λ„μ›€μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.