편집

다음을 통해 공유


덤프에 대한 FAQ

이 문서에서는 .NET에서 덤프를 수집하는 방법에 대한 일반적인 질문에 답변합니다.

[dotnet-dump](dotnet-dump.md) 또는 [크래시가 발생한 프로세스](dumps.md#collect-dumps-on-crash)가 관리자 권한으로 실행되는 경우에만 Linux에서 덤프를 가져오는 이유는 무엇인가요?

Linux 기반 시스템에서는 /proc/sys/kernel/ptrace_scopeptrace를 호출할 수 있는 사용자 및 추적할 수 있는 프로세스를 제어합니다. 동일한 상위 체인의 프로세스만 추적할 수 있음을 의미하는 1로 설정하는 것이 좋습니다. 이 값보다 높은 값은 권한 상승이 필요하거나 ptrace를 완전히 비활성화할 수 있습니다.

컨테이너 내에서 실행할 때 덤프를 수집할 수 없는 이유는 무엇인가요?

Open Container Initiative 기술로 실행되는 애플리케이션의 경우 seccomp프로필에서 ptrace에 대한 호출을 허용해야 합니다. 예를 들어 Docker는 내부적으로 containerd를 컨테이너 런타임으로 사용합니다. 런타임을 초기화할 때 컨테이너 호스트에 있는 커널 버전이 4.8보다 높거나 CAP_SYS_PTRACE 기능이 지정된 경우에만 ptrace를 허용하는 기본 seccomp 프로필을 지정합니다.

macOS에서 덤프를 수집할 수 없는 이유는 무엇인가요?

macOS에서 ptrace를 사용하려면 대상 프로세스의 호스트에 적절한 자격이 있어야 합니다. 필요한 최소 자격에 대한 자세한 내용은 기본 자격을 참조하세요.

덤프를 활용하여 .NET 애플리케이션의 문제를 진단하는 방법에 대해 자세히 알아볼 수 있는 위치는 어디인가요?

다음은 몇 가지 추가 리소스입니다.

"호환되는 프레임워크 버전을 찾을 수 없음" 오류를 해결하려면 어떻게 해야 하나요?

Linux에서 DOTNET_ROOT 환경 변수가 설정되면 올바른 폴더를 가리켜야 합니다. 다른 .NET 버전을 가리키면 dotnet-dump은(는) 항상 이 오류가 발생됩니다. DOTNET_ROOT 환경 변수가 설정되지 않으면 다른 오류가 발생합니다("이 애플리케이션을 실행하려면 .NET을 설치해야 함").