Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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. |