launch.vs.json
şema başvurusu (C++)
Visual Studio 2017 ve sonraki sürümlerinde, çözüm veya proje dosyası gerektirmeden neredeyse tüm dizin tabanlı projelerden kod açabilir ve oluşturabilirsiniz. Proje veya çözüm dosyası olmadığında, JSON yapılandırma dosyaları aracılığıyla özel derleme görevleri belirtebilir ve parametreleri başlatabilirsiniz. Bu makalede, hata ayıklama parametrelerini belirten dosya açıklanmaktadır launch.vs.json
. "Klasör Aç" özelliği hakkında daha fazla bilgi için bkz . Visual Studio'da proje veya çözüm olmadan kod geliştirme.
Dosyayı oluşturmak için, Çözüm Gezgini'da yürütülebilir bir dosyaya sağ tıklayın ve Hata Ayıklama ve Başlatma Ayarları'nı seçin. Projenizle en yakın eşleşen seçeneği belirleyin ve yapılandırmayı gerektiği gibi değiştirmek için aşağıdaki özellikleri kullanın. CMake projelerinde hata ayıklama hakkında daha fazla bilgi için bkz . CMake hata ayıklama oturumlarını yapılandırma.
Varsayılan özellikler
Özellik | Türü | Açıklama |
---|---|---|
args |
dizi | Başlatılan programa geçirilen komut satırı bağımsız değişkenlerini belirtir. |
buildConfigurations |
dizi | Yapılandırmaları uygulamak için derleme modunun adını belirten bir anahtar-değer çifti. Örneğin veya Debug Release ve seçili derleme moduna göre kullanılacak yapılandırmalar. |
currentDir |
Dize | Derleme Hedefi'nin tam dizin yolunu belirtir. Bu parametre ayarlanmadığı sürece dizin otomatik olarak algılanır. |
cwd |
Dize | Programın çalıştırılacağı uzak sistemdeki dizinin tam yolu. Varsayılan değer: "${debugInfo.defaultWorkingDirectory}" |
debugType |
Dize | Hata ayıklama modunu kod türüne (yerel, yönetilen veya karma) göre belirtir. Bu parametre ayarlanmadığı sürece mod otomatik olarak algılanır. İzin verilen değerler: "native" , "managed" , "mixed" . |
env |
dizi | Özel ortam değişkenlerinin anahtar-değer listesini belirtir. Örneğin: env:{"myEnv":"myVal"} . |
inheritEnvironments |
dizi | Birden çok kaynaktan devralınan ortam değişkenleri kümesini belirtir. veya CppProperties.json gibi CMakeSettings.json dosyalarda bazı değişkenler tanımlayabilir ve bunların hata ayıklama bağlamı için kullanılabilir olmasını sağlayabilirsiniz. Visual Studio 16.4: Söz dizimini env.VARIABLE_NAME kullanarak hedef başına ortam değişkenlerini belirtin. Bir değişkenin kümesini açmak için "null" olarak ayarlayın. |
name |
Dize | Başlangıç Öğesi açılan listesinde girdinin adını belirtir. |
noDebug |
boolean | Başlatılan programda hata ayıklama yapılıp yapılmayacağını belirtir. Bu parametre için varsayılan değer belirtilmezse olur false . |
portName |
Dize | Çalışan bir işleme eklenirken bağlantı noktasının adını belirtir. |
program |
Dize | Yürütülecek hata ayıklama komutu. varsayılan değeridir "${debugInfo.fullTargetPath}" . |
project |
Dize | Proje dosyasının göreli yolunu belirtir. Normalde, bir CMake projesinde hata ayıklarken bu değeri değiştirmeniz gerekmez. |
projectTarget |
Dize | oluştururken project çağrılan isteğe bağlı hedefi belirtir. Hedef, Başlangıç Öğesi açılan menüsündeki adla eşleşmelidir. |
stopOnEntry |
boolean | İşlem başlatılır başlatılmaz ve hata ayıklayıcı eklendiğinde bir kesme yapılıp yapılmayacağını belirtir. Bu parametre için varsayılan değerdir false . |
remoteMachine |
Dize | Programın başlatıldığı uzak makinenin adını belirtir. |
type |
Dize | Projenin .exe için bir dll mi yoksa exe Varsayılan mı olduğunu belirtir |
C++ Linux özellikleri
Özellik | Türü | Veri Akışı Açıklaması |
---|---|---|
program |
Dize | Uzak makinede program yürütülebilir dosyasının tam yolu. CMake kullanılırken, makro ${debugInfo.fullTargetPath} bu alanın değeri olarak kullanılabilir. |
processId |
integer | Hata ayıklayıcının eklendiği isteğe bağlı işlem kimliği. |
sourceFileMap |
nesne | hata ayıklama altyapısına geçirilen isteğe bağlı kaynak dosya eşlemeleri. Biçim: { "\<Compiler source location>": "\<Editor source location>" } veya { "\<Compiler source location>": { "editorPath": "\<Editor source location>", "useForBreakpoints": true } } . Örnek: { "/home/user/foo": "C:\\foo" } veya { "/home/user/foo": { "editorPath": "c:\\foo", "useForBreakpoints": true } } . Daha fazla bilgi için bkz . Kaynak dosya eşleme seçenekleri. |
additionalProperties |
Dize | sourceFileMapOptions kaynaklarından biri. (Aşağıya bakın.) |
MIMode |
Dize | MIDebugEngine'in bağlanacağı MI özellikli konsol hata ayıklayıcısının türünü gösterir. İzin verilen değerler şunlardır: "gdb" , "lldb" . |
args |
dizi | Programa geçirilen komut satırı bağımsız değişkenleri. |
environment |
dizi | Programın ortamına eklenecek ortam değişkenleri. Örnek: [ { "name": "squid", "value": "clam" } ] . |
targetArchitecture |
Dize | Debuggee mimarisi. Bu parametre ayarlanmadığı sürece mimari otomatik olarak algılanır. İzin verilen değerler : x86 , arm , arm64 , mips , x64 , , amd64 . x86_64 |
visualizerFile |
Dize | Bu işlemde hata ayıklarken kullanılacak .natvis dosyası. Bu seçenek GDB güzel yazdırma ile uyumlu değildir. Bu ayarı kullanıp kullanmadığınıza bakın "showDisplayString" . |
showDisplayString |
boolean | VisualizerFile belirtildiğinde, showDisplayString görüntü dizesini etkinleştirir. Bu seçeneğin açılması hata ayıklama sırasında performansı yavaşlatabilir. |
remoteMachineName |
Dize | gdb'yi barındıran uzak Linux makinesi ve hata ayıklama programı. Yeni Linux makineleri eklemek için Bağlantı Yöneticisi kullanın. CMake kullanılırken, makro ${debugInfo.remoteMachineName} bu alanın değeri olarak kullanılabilir. |
miDebuggerPath |
Dize | MI özellikli hata ayıklayıcının yolu (gdb gibi). Belirtilmezse, hata ayıklayıcı için önce PATH araması yapacaktır. |
miDebuggerServerAddress |
Dize | Bağlanacak MI özellikli hata ayıklayıcısı sunucusunun ağ adresi. Örnek: "localhost:1234" . |
setupCommands |
dizi | Temel alınan hata ayıklayıcıyı ayarlamak için yürütülecek bir veya daha fazla GDB/LLDB komutu. Örnek: "setupCommands": [ { "text": "-enable-pretty-printing", "description": "Enable GDB pretty printing", "ignoreFailures": true }] . Daha fazla bilgi için bkz . Kurulum komutlarını başlatma. |
customLaunchSetupCommands |
dizi | Sağlanırsa, bu değer hedefi başlatmak için kullanılan varsayılan komutların yerine başka komutlar ekler. Örneğin, hedef işleme eklemek için "-target-attach" kullanın. Boş bir komut listesi başlatma komutlarının yerini hiçbir şey almaz. Bu, hata ayıklayıcıya komut satırı seçenekleri olarak başlatma seçenekleri sağlanıyorsa yararlı olabilir. Örnek: "customLaunchSetupCommands": [ { "text": "target-run", "description": "run target", "ignoreFailures": false }] . |
launchCompleteCommand |
Dize | Hata ayıklayıcı tamamen ayarlandıktan sonra yürütülecek komut, hedef işlemin çalıştırılmasına neden olur. İzin verilen değerler "exec-run", "exec-continue", "None" değerleridir. Varsayılan değer "exec-run"dır. |
debugServerPath |
Dize | Başlatma için sunucuda hata ayıklamak için isteğe bağlı tam yol. Varsayılan değer null'tır. |
debugServerArgs |
Dize | İsteğe bağlı hata ayıklama sunucusu birleştirmeleri. Varsayılan değer null'tır. |
filterStderr |
boolean | Çıkışta hata ayıklamak için stderr akışında sunucu tarafından başlatılan desen ve günlük stderr araması yapın. varsayılan değeridir false . |
coreDumpPath |
Dize | Belirtilen program için çekirdek döküm dosyasının isteğe bağlı tam yolu. Varsayılan değer null'tır. |
externalConsole | boolean | True ise, debuggee için bir konsol başlatılır. ise false , hiçbir konsol başlatılmaz. Bu ayar için varsayılan değerdir false . Bu seçenek bazı durumlarda teknik nedenlerle yoksayılır. |
pipeTransport |
Dize | Mevcut olduğunda, bu değer hata ayıklayıcıya Visual Studio ile MI özellikli hata ayıklayıcısı (gdb gibi) arasında standart giriş/çıkış geçişi yapacak bir kanal olarak başka bir yürütülebilir dosya kullanarak uzak bir bilgisayara bağlanmasını söyler. İzin verilen değerler: bir veya daha fazla Boru Aktarım Seçeneği. |
debugInfo makroları
Aşağıdaki makrolar hata ayıklama ortamı hakkında bilgi sağlar. Bunlar, hata ayıklama için uygulamanızın başlatılmasını özelleştirmek için kullanışlıdır.
Makro | Açıklama | Örnek |
---|---|---|
addressSanitizerRuntimeFlags |
Adres dezenfektanının davranışını özelleştirmek için kullanılan çalışma zamanı bayrakları. ortam değişkenini "ASAN_OPTIONS" ayarlamak için kullanılır. |
"env": {"ASAN_OPTIONS": "${addressSanitizerRuntimeFlags}:anotherFlag=true" } |
defaultWorkingDirectory |
dizininin dizin bölümüne "fullTargetPath" ayarlayın. CMake değişkeni VS_DEBUGGER_WORKING_DIRECTORY tanımlanmışsa, bunun defaultWorkingDirectory yerine bu değere ayarlanır. |
"cwd":"${debugInfo.defaultWorkingDirectory}" |
fullTargetPath |
Hata ayıklanan ikili dosyasının tam yolu. | "program": "${debugInfo.fullTargetPath}" |
linuxNatvisPath |
VS linux .natvis dosyasının tam windows yolu. Genellikle değeri "visualizerFile" olarak görünür. |
|
parentProcessId |
Geçerli Visual Studio örneğinin işlem kimliği. shellexec parametresi olarak kullanılır. | Aşağıdaki pipeTransport örneğine bakın. |
remoteMachineId |
Uzak makineye bağlantı için benzersiz, sayısal bir tanımlayıcı. shellexec parametresi olarak kullanılır. | Aşağıdaki pipeTransport örneğine bakın. |
remoteWorkspaceRoot |
Çalışma alanının uzak kopyasının Linux yolu. | Uzak makinede dosya konumlarını belirtin. Örneğin: "args": ["${debugInfo.remoteWorkspaceRoot}/Data/MyInputFile.dat"] |
resolvedRemoteMachineName |
Hedef uzak makinenin adı. | "targetMachine" dağıtım yönergesindeki değer |
shellexecPath |
Visual Studio'nın uzak makine bağlantısını yönetmek için kullandığı shellexec programının yolu. | Aşağıdaki pipeTransport örneğine bakın |
tty |
gdb, hata ayıklanan program için giriş ve çıkışı bu cihaza yeniden yönlendirir. gdb (-tty) parametresi olarak kullanılır. | Aşağıdaki pipeTransport örneğine bakın. |
windowsSubsystemPath |
Linux için Windows Alt Sistemi örneğinin tam yolu. |
Aşağıdaki pipeTransport örneği, yukarıda tanımlanan bazı debugInfo
makroların nasıl kullanılacağını gösterir:
"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}"
]
}
C++ Windows uzaktan hata ayıklama ve dağıtma özellikleri
Uzak bir makinede bir uygulamada hata ayıklama ve dağıtma sırasında kullanılır.
Özellik | Türü | Veri Akışı Açıklaması |
---|---|---|
cwd |
Dize | Uzak makinedeki hedefin çalışma dizini. CMake kullanılırken, makro ${debugInfo.defaultWorkingDirectory} bu alanın değeri olarak kullanılabilir. Varsayılan değer, hata ayıklama programının/komutunun dizinidir. |
deploy |
Dize | Dağıtılacak ek dosyaları veya dizinleri belirtir. Örneğin:"deploy": {"sourcePath":"<Full path to source file/directory on host machine>", "targetPath":"<Full destination path to file/directory on target machine>"} |
deployDirectory |
Dize | Proje çıkışlarının otomatik olarak dağıtıldığı uzak makinedeki konum. Varsayılan olarak "C:\Windows Default Deploy Directory\<name of app> |
deployDebugRuntimeLibraries |
Dize | Etkin platform için hata ayıklama çalışma zamanı kitaplıklarının dağıtılıp dağıtılmayacağını belirtir. "true" Varsayılan olarak etkin configurationType değeri"Debug" |
deployRuntimeLibraries |
Dize | Etkin platform için çalışma zamanı kitaplıklarının dağıtılıp dağıtılmayacağını belirtir. "true" Etkin configurationType değeri , "RelWithDebInfo" veya "Release" ise varsayılan olarak "MinSizeRel" ayarlanır. |
disableDeploy |
boolean | Dosyaların dağıtılıp dağıtılmayacağını belirtir. |
remoteMachineName |
Dize | Programın başlatıldığı uzak ARM64 Windows makinesinin adını belirtir. Sunucu adı veya uzak makinenin IP adresi olabilir. |
authenticationType |
Dize | Uzak bağlantının türünü belirtir. Olası değerler ve "none" şeklindedir"windows" . Varsayılan değer: "windows" . Bu değer, uzak makinede çalışan uzak hata ayıklayıcıda belirtilen kimlik doğrulama ayarıyla eşleşmelidir. |
Kurulum komutlarını başlatma
Özelliğiyle kullanılır setupCommands
:
Özellik | Türü | Veri Akışı Açıklaması |
---|---|---|
text |
Dize | Yürütülecek hata ayıklayıcısı komutu. |
description |
Dize | Komut için isteğe bağlı açıklama. |
ignoreFailures |
boolean | True ise, komuttan gelen hatalar yoksayılmalıdır. varsayılan değeridir false . |
Boru taşıma seçenekleri
Özelliğiyle kullanılır pipeTransport
:
Özellik | Türü | Veri Akışı Açıklaması |
---|---|---|
pipeCwd |
Dize | Kanal programı için çalışma dizininin tam yolu. |
pipeProgram |
Dize | Yürütülecek tam kanal komutu. |
pipeArgs |
dizi | Bağlantıyı yapılandırmak için kanal programına geçirilen komut satırı bağımsız değişkenleri. |
debuggerPath |
Dize | Hedef makinedeki hata ayıklayıcının tam yolu, örneğin /usr/bin/gdb. |
pipeEnv |
nesne | Kanal programına geçirilen ortam değişkenleri. |
quoteArgs |
boolean | Bağımsız değişkenler karakter (boşluk veya sekme gibi) içeriyorsa, tırnak içine alınmalıdır? ise false , hata ayıklayıcısı komutu artık otomatik olarak tırnak içine alınmaz. Varsayılan true değeridir. |
Kaynak dosya eşleme seçenekleri
Özelliğiyle kullanın sourceFileMap
:
Özellik | Türü | Veri Akışı Açıklaması |
---|---|---|
editorPath |
Dize | Düzenleyicinin bulabilmek için kaynak kodunun konumu. |
useForBreakpoints |
boolean | Kesme noktaları ayarlanırken bu kaynak eşleme kullanılmalıdır. ise false , kesme noktalarını ayarlamak için yalnızca dosya adı ve satır numarası kullanılır. ise true , kesme noktaları yalnızca bu kaynak eşleme kullanıldığında dosyanın tam yolu ve satır numarasıyla ayarlanır. Aksi takdirde kesme noktaları ayarlanırken yalnızca dosya adı ve satır numarası kullanılır. Varsayılan true değeridir. |