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 launch.vs.json file, yang menentukan parameter penelusuran kesalahan. 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 Target Build. Direktori terdeteksi secara otomatis kecuali parameter ini diatur.
cwd string Jalur penuh ke direktori pada sistem jarak jauh tempat program akan berjalan. Default ke "${debugInfo.defaultWorkingDirectory}"
debugType string Menentukan mode penelusuran kesalahan sesuai dengan jenis kode (asli, terkelola, atau campuran). Mode secara otomatis terdeteksi kecuali parameter ini diatur. 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 menu dropdown 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. Default 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 menu dropdown Item Startup.
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 Default untuk .exe

Properti C++ 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 Integer ID proses opsional untuk melampirkan debugger.
sourceFileMap object 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 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 baris perintah diteruskan ke program.
environment array Variabel lingkungan untuk ditambahkan ke lingkungan untuk program. Contoh: [ { "name": "squid", "value": "clam" } ].
targetArchitecture string Arsitektur debuggee. Arsitektur terdeteksi secara otomatis kecuali parameter ini diatur. Nilai yang diizinkan adalah x86, , arm64arm, mips, x64, amd64, x86_64.
visualizerFile string File .natvis yang akan digunakan saat menelusuri kesalahan 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 performa selama penelusuran kesalahan.
remoteMachineName string Komputer Linux jarak jauh yang menghosting gdb dan program untuk 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 yang diaktifkan MI (seperti gdb). Ketika tidak ditentukan, itu akan mencari PATH terlebih dahulu untuk debugger.
miDebuggerServerAddress string Alamat jaringan server debugger yang diaktifkan 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 Meluncurkan perintah penyiapan.
customLaunchSetupCommands array Jika disediakan, nilai ini menggantikan perintah default yang digunakan untuk meluncurkan target dengan beberapa perintah lainnya. Misalnya, gunakan "-target-attach" untuk melampirkan 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 yang akan dijalankan setelah debugger disiapkan sepenuhnya, untuk menyebabkan proses target 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. Default ke null.
debugServerArgs string Arg server debug opsional. Default ke null.
filterStderr Boolean Cari aliran stderr untuk pola yang dimulai server dan stderr log untuk men-debug output. Default ke false.
coreDumpPath string Jalur lengkap opsional ke file cadangan inti untuk program yang ditentukan. Default ke null.
externalConsole Boolean Jika true, konsol diluncurkan untuk debuggee. Jika false, tidak ada konsol yang diluncurkan. 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 penelusuran kesalahan. Ini berguna untuk menyesuaikan peluncuran aplikasi Anda untuk penelusuran kesalahan.

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 biner yang sedang di-debug. "program": "${debugInfo.fullTargetPath}"
linuxNatvisPath Jalur jendela lengkap 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 target. "targetMachine" nilai dalam arahan 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 yang debugInfo 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}"
    ]
    }

Debug jarak jauh C++ Windows dan properti penyebaran

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. Default ke "C:\Windows Default Deploy Directory\<name of app>
deployDebugRuntimeLibraries string Menentukan apakah akan menyebarkan pustaka runtime debug untuk platform aktif. Default ke "true" jika configurationType aktif adalah "Debug"
deployRuntimeLibraries string Menentukan apakah akan menyebarkan pustaka runtime untuk platform aktif. Default ke "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 true, kegagalan dari perintah harus diabaikan. Default ke false.

Opsi transportasi pipa

Digunakan dengan pipeTransport properti :

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 pipa untuk mengonfigurasi koneksi.
debuggerPath string Jalur lengkap ke debugger pada komputer target, misalnya /usr/bin/gdb.
pipeEnv object 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 sourceFileMap properti :

Properti Tipe Deskripsi
editorPath string Lokasi kode sumber untuk ditemukan 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.