Bagikan melalui


launch.vs.json referensi skema (C++)

Di Visual Studio 2017 dan versi yang lebih baru, Anda dapat membuka dan membuat kode dari hampir semua proyek berbasis direktori tanpa memerlukan solusi atau file proyek. Ketika tidak ada file proyek atau solusi, Anda dapat menentukan tugas build kustom dan meluncurkan parameter melalui file konfigurasi JSON. Artikel ini menjelaskan berkas launch.vs.json, yang menentukan parameter debugging. Untuk informasi selengkapnya tentang fitur "Buka Folder", lihat Mengembangkan kode di Visual Studio tanpa proyek atau solusi.

Untuk membuat file, klik kanan pada file yang dapat dieksekusi di Penjelajah Solusi dan pilih Debug dan Luncurkan Pengaturan. Pilih opsi yang paling cocok dengan proyek Anda lalu gunakan properti berikut untuk mengubah konfigurasi sesuai kebutuhan. Untuk informasi selengkapnya tentang penelusuran kesalahan proyek CMake, lihat Mengonfigurasi sesi penelusuran kesalahan CMake.

Properti default

Properti Tipe Deskripsi
args array Menentukan argumen baris perintah yang diteruskan ke program yang diluncurkan.
buildConfigurations array Pasangan kunci-nilai yang menentukan nama mode build untuk menerapkan konfigurasi. Misalnya, Debug atau Release dan konfigurasi yang akan digunakan sesuai dengan mode build yang dipilih.
currentDir string Menentukan jalur direktori lengkap ke Build Target. Direktori terdeteksi secara otomatis kecuali parameter ini diatur.
cwd string Jalur penuh ke direktori pada sistem jarak jauh tempat program akan berjalan. Bawaan ke "${debugInfo.defaultWorkingDirectory}".
debugType string Menentukan mode penelusuran kesalahan sesuai dengan jenis kode (asli, terkelola, atau campuran). Mode secara otomatis terdeteksi kecuali parameter ini ditentukan. Nilai yang diizinkan: "native", "managed", dan "mixed".
env array Menentukan daftar nilai kunci variabel lingkungan kustom. Misalnya: env:{"myEnv":"myVal"}.
inheritEnvironments array Menentukan sekumpulan variabel lingkungan yang diwarisi dari beberapa sumber. Anda dapat menentukan beberapa variabel dalam file seperti CMakeSettings.json atau CppProperties.json dan membuatnya tersedia untuk konteks debug. Visual Studio 16.4: Tentukan variabel lingkungan berdasarkan per target menggunakan env.VARIABLE_NAME sintaks. Untuk membatalkan pengaturan variabel, atur ke "null".
name string Menentukan nama entri dalam Dropdown menu Item Startup.
noDebug Boolean Menentukan apakah akan men-debug program yang diluncurkan. Nilai default untuk parameter ini adalah false jika tidak ditentukan.
portName string Menentukan nama port saat melampirkan ke proses yang sedang berjalan.
program string Perintah debug untuk dijalankan. Bawaan ke "${debugInfo.fullTargetPath}".
project string Menentukan jalur relatif ke file proyek. Biasanya, Anda tidak perlu mengubah nilai ini saat men-debug proyek CMake.
projectTarget string Menentukan target opsional yang dipanggil saat membangun project. Target harus cocok dengan nama di Item Startup menu dropdown.
stopOnEntry Boolean Menentukan apakah akan berhenti segera setelah proses diluncurkan dan debugger melampirkan. Nilai default untuk parameter ini adalah false.
remoteMachine string Menentukan nama komputer jarak jauh tempat program diluncurkan.
type string Menentukan apakah proyek adalah dll atau exe. Bawaan ke "exe".

Properti C++ di Linux

Properti Tipe Deskripsi
program string Jalur lengkap ke program yang dapat dieksekusi pada komputer jarak jauh. Saat menggunakan CMake, makro ${debugInfo.fullTargetPath} dapat digunakan sebagai nilai bidang ini.
processId Bilangan bulat ID proses yang bersifat opsional untuk menghubungkan debugger.
sourceFileMap objek Pemetaan file sumber opsional diteruskan ke mesin debug. Format: { "\<Compiler source location>": "\<Editor source location>" } atau { "\<Compiler source location>": { "editorPath": "\<Editor source location>", "useForBreakpoints": true } }. Contoh: { "/home/user/foo": "C:\\foo" } atau { "/home/user/foo": { "editorPath": "c:\\foo", "useForBreakpoints": true } }. Untuk informasi selengkapnya, lihat Opsi peta file sumber.
additionalProperties string Salah satu opsi pemetaan berkas sumber (sourceFileMapOptions). (Lihat di bawah ini.)
MIMode string Menunjukkan jenis debugger konsol berkemampuan MI yang akan disambungkan oleh MIDebugEngine. Nilai yang diizinkan adalah "gdb", "lldb".
args array Argumen yang dimasukkan melalui baris perintah diteruskan ke program.
environment array Variabel lingkungan yang harus ditambahkan ke lingkungan program. Contoh: [ { "name": "squid", "value": "clam" } ].
targetArchitecture string Arsitektur dari sistem yang sedang diuji/debug. Arsitektur terdeteksi secara otomatis kecuali parameter ini diatur. Nilai yang diizinkan adalah x86, , armarm64, mips, x64, amd64, x86_64.
visualizerFile string File .natvis yang akan digunakan saat melakukan debugging proses ini. Opsi ini tidak kompatibel dengan pencetakan GDB yang cantik. Lihat "showDisplayString" apakah Anda menggunakan pengaturan ini.
showDisplayString Boolean Saat visualizerFile ditentukan, showDisplayString akan mengaktifkan string tampilan. Mengaktifkan opsi ini dapat memperlambat kinerja selama debugging.
remoteMachineName string Komputer Linux jarak jauh yang menghosting gdb dan program yang akan di-debug. Gunakan Pengelola Sambungan untuk menambahkan komputer Linux baru. Saat menggunakan CMake, makro ${debugInfo.remoteMachineName} dapat digunakan sebagai nilai bidang ini.
miDebuggerPath string Jalur ke debugger berbasis MI (seperti gdb). Ketika tidak ditentukan, program akan mencari variabel PATH terlebih dahulu untuk debugger.
miDebuggerServerAddress string Alamat jaringan dari server debugger yang diaktifkan oleh MI untuk disambungkan. Contoh: "localhost:1234".
setupCommands array Satu atau beberapa perintah GDB/LLDB untuk dijalankan untuk menyiapkan debugger yang mendasar. Contoh: "setupCommands": [ { "text": "-enable-pretty-printing", "description": "Enable GDB pretty printing", "ignoreFailures": true }]. Untuk informasi selengkapnya, lihat Perintah peluncuran untuk pengaturan.
customLaunchSetupCommands array Jika disediakan, nilai ini menggantikan perintah default yang digunakan untuk meluncurkan target dengan beberapa perintah lainnya. Misalnya, gunakan "-target-attach" untuk mengaitkan ke proses target. Daftar perintah kosong menggantikan perintah peluncuran tanpa apa pun, yang dapat berguna jika debugger disediakan opsi peluncuran sebagai opsi baris perintah. Contoh: "customLaunchSetupCommands": [ { "text": "target-run", "description": "run target", "ignoreFailures": false }].
launchCompleteCommand string Perintah untuk dijalankan setelah debugger disiapkan sepenuhnya, agar proses target mulai berjalan. Nilai yang diizinkan adalah "exec-run", "exec-continue", "None". Nilai defaultnya adalah "exec-run".
debugServerPath string Jalur lengkap opsional ke server debug untuk diluncurkan. Disetel secara default ke null.
debugServerArgs string Argumen server debug opsional. Pengaturan awal ke null.
filterStderr Boolean Cari aliran stderr untuk pola "server telah dimulai" dan catat stderr ke output debug. Bawaan ke false.
coreDumpPath string Jalur opsional lengkap ke file core dump untuk program yang ditentukan. Beralih menjadi null.
externalConsole Boolean Jika benar, konsol akan diluncurkan untuk program debugging. Jika false, tidak ada konsol yang dijalankan. Default untuk pengaturan ini adalah false. Opsi ini diabaikan dalam beberapa kasus karena alasan teknis.
pipeTransport string Saat ada, nilai ini memberi tahu debugger untuk terhubung ke komputer jarak jauh menggunakan executable lain sebagai pipa yang akan menyampaikan input/output standar antara Visual Studio dan debugger yang diaktifkan MI (seperti gdb). Nilai yang diizinkan: satu atau beberapa Opsi Transportasi Pipa.

makro debugInfo

Makro berikut ini menyediakan informasi tentang lingkungan debugging. Ini berguna untuk konfigurasi peluncuran aplikasi Anda untuk penelusuran kesalahan (debugging).

Makro Deskripsi Contoh
addressSanitizerRuntimeFlags Bendera runtime yang digunakan untuk menyesuaikan perilaku pembersih alamat. Digunakan untuk mengatur variabel "ASAN_OPTIONS"lingkungan . "env": {"ASAN_OPTIONS": "${addressSanitizerRuntimeFlags}:anotherFlag=true"}
defaultWorkingDirectory Atur ke bagian direktori dari "fullTargetPath". Jika variabel VS_DEBUGGER_WORKING_DIRECTORY CMake ditentukan, maka defaultWorkingDirectory diatur ke nilai tersebut, sebagai gantinya. "cwd":"${debugInfo.defaultWorkingDirectory}"
fullTargetPath Jalur lengkap ke berkas biner yang sedang di-debug. "program": "${debugInfo.fullTargetPath}"
linuxNatvisPath Jalur lengkap Windows ke file VS Linux .natvis. Biasanya muncul sebagai nilai "visualizerFile".
parentProcessId ID proses untuk instans Visual Studio saat ini. Digunakan sebagai parameter untuk shellexec. Lihat contoh pipeTransport di bawah ini.
remoteMachineId Pengidentifikasi numerik unik untuk koneksi ke komputer jarak jauh. Digunakan sebagai parameter untuk shellexec. Lihat contoh pipeTransport di bawah ini.
remoteWorkspaceRoot Jalur Linux ke salinan jarak jauh ruang kerja. Tentukan lokasi file pada komputer jarak jauh. Misalnya: "args": ["${debugInfo.remoteWorkspaceRoot}/Data/MyInputFile.dat"]
resolvedRemoteMachineName Nama komputer jarak jauh sasaran. "targetMachine" nilai dalam direktif penyebaran
shellexecPath Jalur ke program shellexec yang digunakan Visual Studio untuk mengelola koneksi komputer jarak jauh. Lihat contoh pipeTransport di bawah ini
tty gdb akan mengalihkan input dan output ke perangkat ini untuk program yang sedang di-debug. Digunakan sebagai parameter untuk gdb (-tty). Lihat contoh pipeTransport di bawah ini.
windowsSubsystemPath Jalur lengkap ke instans Subsistem Windows untuk Linux.

Contoh pipeTransport di bawah ini menunjukkan cara menggunakan beberapa makro debugInfo yang ditentukan di atas:

"pipeTransport": {
    "pipeProgram": "${debugInfo.shellexecPath}",
    "pipeArgs": [
        "/s",
        "${debugInfo.remoteMachineId}",
        "/p",
        "${debugInfo.parentProcessId}",
        "/c",
        "${debuggerCommand}",
        "--tty=${debugInfo.tty}"
    ],
    "pipeCmd": [
        "/s",
        "${debugInfo.remoteMachineId}",
        "/p",
        "${debugInfo.parentProcessId}",
        "/c",
        "${debuggerCommand}"
    ]
}

Debugging jarak jauh C++ Windows dan properti penerapan

Digunakan saat men-debug dan menyebarkan aplikasi di komputer jarak jauh.

Properti Tipe Deskripsi
cwd string Direktori kerja target pada komputer jarak jauh. Saat menggunakan CMake, makro ${debugInfo.defaultWorkingDirectory} dapat digunakan sebagai nilai bidang ini. Nilai default adalah direktori program/perintah debug.
deploy string Menentukan file atau direktori tambahan untuk disebarkan. Contohnya:
"deploy": {"sourcePath":"<Full path to source file/directory on host machine>", "targetPath":"<Full destination path to file/directory on target machine>"}
deployDirectory string Lokasi pada komputer jarak jauh tempat output proyek secara otomatis disebarkan. Bawaan ke "C:\Windows Default Deploy Directory\<name of app>".
deployDebugRuntimeLibraries string Menentukan apakah akan menginstal pustaka runtime untuk debug pada platform aktif. Defaultnya adalah "true" jika configurationType aktif adalah "Debug".
deployRuntimeLibraries string Menentukan apakah akan menyebarkan pustaka runtime untuk platform aktif. Beralih ke default "true" jika configurationType aktif adalah "MinSizeRel", "RelWithDebInfo", atau "Release".
disableDeploy Boolean Menentukan apakah file harus disebarkan.
remoteMachineName string Menentukan nama komputer Windows ARM64 jarak jauh tempat program diluncurkan. Mungkin nama server atau alamat IP komputer jarak jauh.
authenticationType string Menentukan tipe koneksi jarak jauh. Nilai yang mungkin adalah "windows" dan "none". Default adalah "windows". Nilai ini harus cocok dengan pengaturan autentikasi yang ditentukan pada debugger jarak jauh yang berjalan pada komputer jarak jauh.

Luncurkan perintah penyiapan

Digunakan dengan setupCommands properti :

Properti Tipe Deskripsi
text string Perintah debugger untuk dijalankan.
description string Deskripsi opsional untuk perintah .
ignoreFailures Boolean Jika benar, kegagalan dari perintah harus diabaikan. Bawaan ke false.

Opsi transportasi pipa

Digunakan dengan properti pipeTransport

Properti Tipe Deskripsi
pipeCwd string Jalur yang sepenuhnya memenuhi syarat ke direktori kerja untuk program pipa.
pipeProgram string Perintah pipa yang sepenuhnya memenuhi syarat untuk dijalankan.
pipeArgs array Argumen baris perintah diteruskan ke program pipeline untuk mengonfigurasi koneksi.
debuggerPath string Jalur lengkap ke debugger pada komputer target, misalnya /usr/bin/gdb.
pipeEnv objek Variabel lingkungan diteruskan ke program pipa.
quoteArgs Boolean Jika argumen individual berisi karakter (seperti spasi atau tab), haruskah dikutip? Jika false, perintah debugger tidak akan lagi dikutip secara otomatis. Defaultnya adalah true.

Opsi peta file sumber

Gunakan dengan properti sourceFileMap:

Properti Tipe Deskripsi
editorPath string Lokasi kode sumber agar dapat ditemukan oleh editor.
useForBreakpoints Boolean Saat mengatur titik henti, pemetaan sumber ini harus digunakan. Jika false, hanya nama file dan nomor baris yang digunakan untuk mengatur titik henti. Jika true, titik henti akan diatur dengan jalur lengkap ke file dan nomor baris hanya ketika pemetaan sumber ini digunakan. Jika tidak, hanya nama file dan nomor baris yang akan digunakan saat mengatur titik henti. Defaultnya adalah true.