다음을 통해 공유


.shell(명령 셸)

.shell 명령은 셸 프로세스를 시작하고 해당 출력을 디버거 또는 지정된 파일로 리디렉션합니다.

.shell [Options] [ShellCommand] 
.shell -i InFile [-o OutFile [-e ErrFile]] [Options] ShellCommand

매개 변수

Infile
입력에 사용할 파일의 경로와 파일 이름을 지정합니다. 초기 명령 후에 입력을 제공하지 않으려는 경우 하이픈 앞에 공백 없이 InFile 대신 단일 하이픈(-)을 지정할 수 있습니다.

OutFile
표준 출력에 사용할 파일의 경로 및 파일 이름을 지정합니다. -o **** OutFile을 생략하면 출력이 디버거 명령 창으로 전송됩니다. 이 출력을 파일에 표시하거나 저장하지 않으려면 OutFile 대신 하이픈 앞에 공백이 없는 단일 하이픈(-)을 지정할 수 있습니다.

ErrFile
오류 출력에 사용할 파일의 경로 및 파일 이름을 지정합니다. -e ErrFile을 생략하면 오류 출력이 표준 출력과 동일한 위치로 전송됩니다. 이 출력을 파일에 표시하거나 저장하지 않으려면 하이픈 앞에 공백이 없는 ErrFile 대신 단일 하이픈(-)을 지정할 수 있습니다.

옵션은 다음 옵션 중 임의의 수일 수 있습니다.

-ci "Commands"
지정된 디버거 명령을 처리한 다음 출력을 입력 파일로 실행 중인 프로세스에 전달합니다. 명령은 세미콜론으로 구분되고 따옴표로 묶인 여러 디버거 명령일 수 있습니다.

-x
생성되는 모든 프로세스가 디버거에서 완전히 분리되도록 합니다. 이렇게 하면 디버깅 세션이 종료된 후에도 계속 실행되는 프로세스를 만들 수 있습니다.

ShellCommand
실행할 애플리케이션 명령줄 또는 Microsoft MS-DOS 명령을 지정합니다.

환경

항목 설명
모드 사용자 모드, 커널 모드
대상 라이브, 크래시 덤프
플랫폼 모두

추가 정보

명령 셸에 액세스하는 다른 방법은 셸 명령 사용을 참조 하세요.

설명

사용자 모드 디버거의 출력이 커널 디버거로 리디렉션되는 경우 .shell 명령은 지원되지 않습니다. 커널 디버거(KD를 통해 NTSD라고도 함)로 출력을 리디렉션하는 방법에 대한 자세한 내용은 커널 디버거에서 사용자 모드 디버거 제어를 참조하세요.

.shell 명령 뒤의 전체 줄은 Windows 명령으로 해석됩니다(세미콜론이 포함된 경우에도). 이 줄은 따옴표로 묶지 않아야 합니다. .shell과 ShellCommand 사이에 공백이 있어야 합니다(추가 선행 공백은 무시됨).

-o **** OutFile 매개 변수를 사용하지 않는 한 명령의 출력이 디버거 명령 창에 표시됩니다.

매개 변수 없이 .shell 명령을 실행하면 셸이 활성화되고 열린 상태로 유지됩니다. 모든 후속 명령은 Windows 명령으로 해석됩니다. 이 시간 동안 디버거는 .shell 프로세스를 읽<는 메시지에 입력>이 필요할 수 있으며 WinDbg 프롬프트가 입력> 프롬프트로 대체됩니다. 경우에 따라 디버거가 셸을 열어 두면 별도의 명령 프롬프트 창이 나타납니다. 이 창은 무시해야 합니다. 모든 입력 및 출력은 디버거 명령 창을 통해 수행됩니다.

이 셸을 닫고 디버거 자체로 돌아가려면 exit 또는 .shell_quit 입력합니다. (.shell_quit 명령은 셸이 고정된 경우에도 작동하므로 더 강력합니다.)

CSRSS가 활성화되지 않으면 새 프로세스를 만들 수 없으므로 CSRSS를 디버깅하는 동안 이 명령을 사용할 수 없습니다.

-ci 플래그를 사용하여 하나 이상의 디버거 명령을 실행한 다음 출력을 셸 프로세스에 전달할 수 있습니다. 예를 들어 다음 명령을 사용하여 !process 0 7 명령의 출력을 Perl 스크립트로 전달할 수 있습니다.

0:000> .shell -ci "!process 0 7" perl.exe parsemyoutput.pl