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 , , arm64 arm , 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 . |