Bagikan melalui


.shell (Command Shell)

Perintah .shell meluncurkan proses shell dan mengalihkan outputnya ke debugger, atau ke file tertentu.

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

Parameter

InFile
Menentukan jalur dan nama file file yang akan digunakan untuk input. Jika Anda berniat untuk tidak menawarkan input setelah perintah awal, Anda dapat menentukan tanda hubung tunggal (-) alih-alih InFile, tanpa spasi sebelum tanda hubung.

OutFile
Menentukan jalur dan nama file file yang akan digunakan untuk output standar. Jika -o **** OutFile dihilangkan, output dikirim ke jendela Perintah Debugger. Jika Anda tidak ingin output ini ditampilkan atau disimpan dalam file, Anda dapat menentukan satu tanda hubung (-) alih-alih OutFile, tanpa spasi sebelum tanda hubung.

ErrFile
Menentukan jalur dan nama file file yang akan digunakan untuk output kesalahan. Jika -e ErrFile dihilangkan, output kesalahan dikirim ke tempat yang sama dengan output standar. Jika Anda tidak ingin output ini ditampilkan atau disimpan dalam file, Anda dapat menentukan satu tanda hubung (-) alih-alih ErrFile, tanpa spasi sebelum tanda hubung.

Opsi Bisa berupa sejumlah opsi berikut:

-ci "Perintah"
Memproses perintah debugger yang ditentukan, lalu meneruskan output mereka sebagai file input ke proses yang sedang diluncurkan. Perintah dapat berupa sejumlah perintah debugger, dipisahkan oleh titik koma, dan diapit dalam tanda kutip.

-x
Menyebabkan proses apa pun yang ditelurkan sepenuhnya terlepas dari debugger. Ini memungkinkan Anda membuat proses yang akan terus berjalan bahkan setelah sesi penelusuran kesalahan berakhir.

ShellCommand
Menentukan baris perintah aplikasi atau perintah Microsoft MS-DOS yang akan dijalankan.

Lingkungan

Item Deskripsi
Mode Mode pengguna, mode kernel
Target Live, crash dump
Platform Semua

Informasi Tambahan

Untuk cara lain mengakses shell perintah, lihat Menggunakan Perintah Shell.

Keterangan

Perintah .shell tidak didukung ketika output debugger mode pengguna dialihkan ke debugger kernel. Untuk informasi selengkapnya tentang mengalihkan output ke debugger kernel (terkadang disebut NTSD melalui KD), lihat Mengontrol Debugger Mode Pengguna dari Debugger Kernel.

Seluruh baris setelah perintah .shell akan ditafsirkan sebagai perintah Windows (bahkan jika berisi titik koma). Baris ini tidak boleh diapit dalam tanda kutip. Harus ada spasi antara .shell dan ShellCommand (spasi di depan tambahan diabaikan).

Output dari perintah akan muncul di jendela Perintah Debugger, kecuali parameter -o **** OutFile digunakan.

Mengeluarkan perintah .shell tanpa parameter akan mengaktifkan shell dan membiarkannya terbuka. Semua perintah berikutnya akan ditafsirkan sebagai perintah Windows. Selama waktu ini, debugger akan menampilkan pesan yang membaca <proses .shell mungkin memerlukan input>, dan prompt WinDbg akan diganti dengan perintah Input> . Terkadang, jendela Prompt Perintah terpisah akan muncul ketika debugger membiarkan shell terbuka. Jendela ini harus diabaikan; semua input dan output akan dilakukan melalui jendela Perintah Debugger.

Untuk menutup shell ini dan kembali ke debugger itu sendiri, ketik exit atau .shell_quit. (Perintah .shell_quit lebih kuat, karena berfungsi bahkan jika shell dibekukan.)

Perintah ini tidak dapat digunakan saat men-debug CSRSS, karena proses baru tidak dapat dibuat tanpa CSRSS aktif.

Anda dapat menggunakan bendera -ci untuk menjalankan satu atau beberapa perintah debugger lalu meneruskan outputnya ke proses shell. Misalnya, Anda dapat meneruskan output dari perintah !process 0 7 ke skrip Perl dengan menggunakan perintah berikut:

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