Aracılığıyla paylaş


launch.vs.json şema referansı (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 Debug veya Release ve seçili derleme moduna göre kullanılacak yapılandırmalar.
currentDir Dize Derleme hedefinin 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ğeridir "${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 CMakeSettings.json gibi CppProperties.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şkeni sıfırlamak için onu "null" olarak ayarlayın.
name Dize Başlangıç Öğesi açılır listesindeki girdinin adını belirtir.
noDebug Boolean Başlatılan programda hata ayıklama yapılıp yapılmayacağını belirtir. Bu parametre için, belirtilmediği takdirde varsayılan değer false olur.
portName Dize Çalışmakta olan 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 project oluşturulurken çağrılan isteğe bağlı hedefi belirtir. Hedef, Başlangıç Öğesi açılır menüsündeki adla eşleşmelidir.
stopOnEntry Boolean İşlem başlatıldığında ve hata ayıklayıcı eklendiğinde hemen kesilmesi gerekip gerekmediğini 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 bir dll mi yoksa exe mi olduğunu belirtir. varsayılan değeridir "exe".

C++ Linux özellikleri

Özellik Türü Açıklama
program Dize Uzak makinede program çalıştırılabilir dosyasının tam yolu. CMake kullanılırken, makro ${debugInfo.fullTargetPath} bu alanın değeri olarak kullanılabilir.
processId tamsayı Hata ayıklayıcının bağlanabileceği isteğe bağlı işlem kimliği.
sourceFileMap nesne hata ayıklama motoruna aktarılan 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 seçeneklerinden 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'nin 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 Altyapı 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, bir hedef sürecine eklenmek için "-target-attach" komutunu 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şlatılacak hata ayıklama sunucusunun isteğe bağlı tam yolu. Varsayılan değer null'tır.
debugServerArgs Dize Opsiyonel hata ayıklama sunucusu argümanları. Varsayılan değer null'tır.
filterStderr Boolean stderr akışında sunucu tarafından başlatılan deseni arayın ve hata ayıklama çıktısına stderr'i kaydedin. 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 Eğer doğruysa, 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 göz ardı edilir.
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 temizleyicisinin 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ına ait Linux dizin 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

Uzaktaki bir makinede bir uygulamanın dağıtma ve hata ayıklama işlemleri sırasında kullanılır.

Özellik Türü Açıklama
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 değeridir "C:\Windows Default Deploy Directory\<name of app>".
deployDebugRuntimeLibraries Dize Etkin platform için çalışma zamanı hata ayıklama kitaplıklarının dağıtılıp dağıtılmayacağını belirtir. Varsayılan olarak "true", etkin configurationType "Debug" olduğunda ayarlanır.
deployRuntimeLibraries Dize Etkin platform için çalışma zamanı kitaplıklarının dağıtılması gerekip gerekmediğini belirtir. Varsayılan ayar olarak "true", eğer etkin configurationType "MinSizeRel", "RelWithDebInfo" veya "Release" ise 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 şunlardır: "windows" ve "none". 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

setupCommands özelliği ile kullanılır.

Özellik Türü Açıklama
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 Doğruysa, komuttan kaynaklanan hatalar göz ardı edilmelidir. varsayılan değeridir false.

Boru taşıma seçenekleri

pipeTransport özelliği ile kullanılır.

Özellik Türü Açıklama
pipeCwd Dize Boru programı için çalışma dizininin eksiksiz nitelikli yolu.
pipeProgram Dize Yürütülecek tam nitelikli boru komutu.
pipeArgs dizi Komut satırı bağımsız değişkenleri, bağlantıyı yapılandırmak için pipe programına geçirildi.
debuggerPath Dize Hedef makinedeki hata ayıklayıcının tam yolu, örneğin /usr/bin/gdb.
pipeEnv nesne Boru programına aktarılan 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? false ise, hata ayıklayıcı komutu artık otomatik olarak tırnak içine alınmaz. Varsayılan true değeridir.

Kaynak dosya harita seçenekleri

Özelliğiyle kullanın sourceFileMap :

Özellik Türü Açıklama
editorPath Dize Düzenleyicinin kaynak kodunun yerini bulabilmesi için konum.
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. Eğer true kullanılıyorsa, kesme noktaları yalnızca bu kaynak eşleme kullanıldığında tam dosya yolu ve satır numarası ile ayarlanır. Aksi takdirde kesme noktaları ayarlanırken yalnızca dosya adı ve satır numarası kullanılır. Varsayılan true değeridir.