{
  "debugExtensions": {
    "cppdbg": {
      "vsDebugEngineGuid": "{ea6637c6-17df-45b5-a183-0951c54243bc}",
      "VsDebugTargetInfo4": {
        "bstrCurDir": "${workspaceRoot}",
        "bstrExe": "${debugInfo.target}",
        "bstrOptions": "*"
      },
      "templates": [
        {
          "templateId": "launch",
          "displayName": "MinGW/Cygwin (gdb) için C/C++ Başlatma",
          "description": "MinGW veya Cygwin içinde barındırılan C/C++ için hata ayıklama başlatma yapılandırması.",
          "fileExtensions": [
            "*.exe",
            "*.out",
            "derleme görevleri dosyası"
          ],
          "initialConfiguration": {
            "cwd": "${workspaceRoot}",
            "program": "${debugInfo.target}",
            "MIMode": "gdb",
            "miDebuggerPath": "${env.MINGW_PREFIX}\\bin\\gdb.exe",
            "externalConsole": true
          }
        },
        {
          "templateId": "attach",
          "displayName": "MinGW/Cygwin (gdb) için C/C++ İliştirme",
          "description": "MinGW veya Cygwin içinde barındırılan C/C++ için hata ayıklama iliştirme yapılandırması.",
          "fileExtensions": [
            "*.exe",
            "*.out",
            "derleme görevleri dosyası"
          ],
          "initialConfiguration": {
            "cwd": "${workspaceRoot}",
            "program": "${debugInfo.target}",
            "processId": 0,
            "MIMode": "gdb",
            "miDebuggerPath": "${env.MINGW_PREFIX}\\bin\\gdb.exe",
            "externalConsole": true
          }
        }
      ],
      "schema": {
        "definitions": {
          "cpp_schema": {
            "type": "object",
            "properties": {
              "program": {
                "type": "string",
                "description": "Program yürütülebilirinin tam yolu."
              },
              "processId": {
                "type": "integer",
                "description": "Hata ayıklayıcının bağlanacağı, isteğe bağlı işlem kimliği."
              },
              "sourceFileMap": {
                "type": "object",
                "description": "Hata ayıklama altyapısına geçirilen, isteğe bağlı kaynak dosya eşlemeleri. Biçim: '{ \"<Derleyici kaynak konumu>\": \"<Düzenleyici kaynak konumu>\" }' VEYA '{ \"<Derleyici kaynak konumu>\": { \"editorPath\": \"<Düzenleyici kaynak konumu>\", \"useForBreakpoints\": true } }'. \nÖrnek: '{ \"/home/user/foo\": \"C:\\foo\" }' VEYA '{ \"/home/user/foo\": { \"editorPath\": \"c:\\foo\", \"useForBreakpoints\": true } }'.",
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "dize"
                    },
                    {
                      "$ref": "#/definitions/cpp_schema/definitions/sourceFileMapOptions"
                    }
                  ]
                }
              },
              "MIMode": {
                "type": "string",
                "description": "MIDebugEngine'in bağlanacağı, MI özellikli konsol hata ayıklayıcısının türünü belirtir. \nİzin verilen değerler: \"gdb\" \"lldb\"."
              },
              "args": {
                "type": "array",
                "description": "Programa geçirilen komut satırı bağımsız değişkenleri.",
                "items": {
                  "type": "string"
                }
              },
              "environment": {
                "type": "array",
                "description": "Program ortamına eklenecek ortam değişkenleri. \nÖrnek: [ { \"name\": \"squid\", \"value\": \"clam\" } ].",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "value": {
                      "type": "string"
                    }
                  }
                }
              },
              "targetArchitecture": {
                "type": "string",
                "description": "Hata ayıklananın mimarisi. Bu parametre ayarlanmazsa, bu değer otomatik olarak algılanır. \nİzin verilen değerler: x86, arm, arm64, mips, x64, amd64, x86_64."
              },
              "cwd": {
                "type": "string",
                "description": "Hedefin çalışma dizini."
              },
              "miDebuggerPath": {
                "type": "string",
                "description": "MI özellikli hata ayıklayıcının (gdb gibi) yolu. Belirtilmediğinde, ilk olarak hata ayıklayıcı için PATH araması yapar."
              },
              "miDebuggerServerAddress": {
                "type": "string",
                "description": "Bağlanılacak MI özellikli hata ayıklayıcısı sunucusunun ağ adresi. \nÖrnek: localhost:1234."
              },
              "useExtendedRemote": {
                "type": "boole",
                "description": "True ise, gdbserver programına bağlanmak için gdb extended-remote modunu kullanın."
              },
              "setupCommands": {
                "type": "array",
                "description": "Temel alınan hata ayıklayıcısını ayarlamak için çalıştırılacak bir veya daha fazla GDB/LLDB komutu. \nÖrnek: \"setupCommands\": [ { \"text\": \"-enable-pretty-printing\", \"description\": \"Enable GDB pretty printing\", \"ignoreFailures\": true }].",
                "items": {
                  "$ref": "#/definitions/cpp_schema/definitions/launchSetupCommands"
                }
              },
              "postRemoteConnectCommands": {
                "type": "dizi",
                "description": "Uzak bağlantıyı kurmak için bağlantı yapıldıktan sonra yürütülecek bir veya daha fazla komut."
              },
              "customLaunchSetupCommands": {
                "type": "array",
                "description": "Belirtilmesi durumunda, başka komutlarla hedef başlatmak için kullanılan varsayılan komutların yerine geçer. \nÖrneğin, bir hedef işleme iliştirme işlemi için bu, \"-target-attach\" olabilir. \nBoş bir komut listesi, başlatma komutlarını hiçbir şeyle değiştirmez ve hata ayıklayıcısına komut satırı seçeneği olarak başlatma seçenekleri sağlandığı durumlarda yararlı olabilir. \nÖrnek: \"customLaunchSetupCommands\": [ { \"text\": \"target-run\", \"description\": \"run target\", \"ignoreFailures\": false }].",
                "items": {
                  "$ref": "#/definitions/cpp_schema/definitions/launchSetupCommands"
                }
              },
              "launchCompleteCommand": {
                "type": "string",
                "enum": [
                  "exec-run",
                  "exec-continue",
                  "None"
                ],
                "description": "Hedef işlemin çalıştırılması için, hata ayıklayıcısı tamamen ayarlandıktan sonra çalıştırılacak komut. \nİzin verilen değerler: \"exec-run\", \"exec-continue\", \"None\". \nVarsayılan değer: \"exec-run\"."
              },
              "debugServerPath": {
                "type": "string",
                "description": "Başlatılacak hata ayıklama sunucusunun isteğe bağlı tam yolu. \nVarsayılan null değerini alır."
              },
              "debugServerArgs": {
                "type": "string",
                "description": "İsteğe bağlı hata ayıklama sunucusu bağımsız değişkenleri. \nVarsayılan olarak null değerini alır."
              },
              "serverStarted": {
                "type": "string",
                "description": "Hata ayıklama sunucusu çıkışında aranacak, sunucu tarafından başlatılan isteğe bağlı desen. \nVarsayılan olarak null değerini alır."
              },
              "filterStdout": {
                "type": "boolean",
                "description": "Sunucu tarafından başlatılan desen için stdout akışını arar ve çıkışta hata ayıklamak için stdout'u günlüğe kaydeder. \nVarsayılan olarak true değerini alır."
              },
              "filterStderr": {
                "type": "boolean",
                "description": "Sunucu tarafından başlatılan desen için stderr akışını arar ve çıkışta hata ayıklamak için stderr'i günlüğe kaydeder. \nVarsayılan olarak false değerini alır."
              },
              "serverLaunchTimeout": {
                "type": "integer",
                "description": "Hata ayıklayıcının debugServer başlangıcını beklemesi için geçen, milisaniye cinsinden isteğe bağlı süre. Varsayılan değer: 10000."
              },
              "coreDumpPath": {
                "type": "string",
                "description": "Belirtilen program için çekirdek döküm dosyasının isteğe bağlı tam yolu. \nVarsayılan olarak null değerini alır."
              },
              "externalConsole": {
                "type": "boolean",
                "description": "Değeri true olduğunda, hata ayıklanan için bir konsol başlatılır. Değeri false ise konsol başlatılmaz. \nVarsayılan olarak false değerini alır. NOT: Bu seçenek, bazı durumlarda teknik nedenlerle yoksayılır."
              },
              "pipeTransport": {
                "$ref": "#/definitions/cpp_schema/definitions/pipeTransportOptions"
              },
              "stopAtConnect": {
                "type": "Boole değeri",
                "description": "True ise hata ayıklayıcısı hedefe bağlandıktan sonra durmalıdır. False ise hata ayıklayıcısı bağlandıktan sonra çalışmaya devam eder. \nVarsayılan: false."
              },
              "hardwareBreakpoints": {
                "$ref": "#/definitions/cpp_schema/definitions/hardwareBreakpointsOptions"
              },
              "unknownBreakpointHandling": {
                "type": "dize",
                "enum": [
                  "throw",
                  "durdurma"
                ],
                "description": "İsabet ettiğinde harici olarak (genellikle ham GDB komutları aracılığıyla) ayarlanan kesme noktalarının nasıl işlendiğini kontrol eder.\nİzin verilen değerler, uygulama tarafından bir istisna oluşturulmuş gibi davranan \"throw\" ve yalnızca hata ayıklama oturumunu duraklatan \"stop\" değerleridir. Varsayılan değer \"throw\"dur."
              }
            },
            "definitions": {
              "launchSetupCommands": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "description": "Çalıştırılacak hata ayıklayıcısı komutu."
                  },
                  "description": {
                    "type": "string",
                    "description": "Komut için isteğe bağlı açıklama."
                  },
                  "ignoreFailures": {
                    "type": "boolean",
                    "description": "Değeri true ise komuttan gönderilen hatalar yoksayılmalıdır. \nVarsayılan olarak false değerini alır."
                  }
                }
              },
              "pipeTransportOptions": {
                "type": "object",
                "description": "Mevcut olduğunda, hata ayıklayıcıya, Visual Studio ile MI özellikli hata ayıklayıcı (gdb gibi) arasında standart giriş/çıkış geçiren bir kanal olarak görev yapacak başka bir \nyürütülebilir aracılığıyla uzak bilgisayara bağlanmasını söyler.",
                "properties": {
                  "pipeCwd": {
                    "type": "string",
                    "description": "Kanal programı için çalışma dizininin tam yolu."
                  },
                  "pipeProgram": {
                    "type": "string",
                    "description": "Çalıştırılacak tam kanal komutu."
                  },
                  "pipeArgs": {
                    "type": "array",
                    "description": "Bağlantıyı yapılandırmak için kanal programına geçirilen komut satırı bağımsız değişkenleri.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "pipeCmd": {
                    "type": "dizi",
                    "description": "Uzak UNIX (ör. Bash veya benzer) kabuk komutunu çalıştırmak için kanal yürütülebilir dosyasına geçirilen bağımsız değişkenler. Bu, uzak sistemde 'kill' komutunu veya hata ayıklayıcısı için gerekebilen diğer komutları çalıştırmak için kullanılır. Belirtilmemişse hata ayıklayıcısı kabuk olmadan mümkün olan en iyi şekilde çalışır, ancak çalışma modunda kesme noktaları ayarlama gibi bazı özellikler çalışmayabilir. Bu dize, yürütülecek komutla değiştirilecek '{0}' dizesini içermelidir.",
                    "items": {
                      "type": "dize"
                    }
                  },
                  "debuggerPath": {
                    "type": "string",
                    "description": "Hedef makinedeki hata ayıklayıcısının tam yolu. Örneğin: /usr/bin/gdb."
                  },
                  "pipeEnv": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Kanal programına geçirilen ortam değişkenleri."
                  },
                  "quoteArgs": {
                    "type": "boolean",
                    "description": "Belirli bağımsız değişkenler, karakter içeriyorsa (boşluk veya sekme gibi) tırnak içine alınmalı mı? Değeri 'false' ise hata ayıklayıcısı komutu otomatik olarak tırnak içine alınmaz. \nVarsayılan olarak 'true' değerini alır."
                  }
                }
              },
              "sourceFileMapOptions": {
                "type": "object",
                "properties": {
                  "editorPath": {
                    "type": "string",
                    "description": "Düzenleyicinin bulması gereken kaynak kodun konumu."
                  },
                  "useForBreakpoints": {
                    "type": "boolean",
                    "description": "Kesme noktası ayarlanırken bu kaynak eşlemesi kullanılmalıdır. \nDeğer 'false' ise kesme noktası ayarlama işlemi için yalnızca dosya adı ve satır numarası kullanılır. \nDeğer 'true' ise, yalnızca bu kaynak eşlemesinin kullanıldığı durumlarda kesme noktaları dosyanın tam yoluyla ve satır numarasıyla ayarlanır. Aksi durumda, kesme noktası ayarlanırken yalnızca dosya adı ve satır numarası kullanılır. \nVarsayılan değer: 'true'."
                  }
                }
              },
              "hardwareBreakpointsOptions": {
                "type": "nesne",
                "properties": {
                  "require": {
                    "type": "Boole değeri",
                    "description": "True ise her zaman donanım kesme noktalarını kullanın.\nVarsayılan: false."
                  },
                  "limit": {
                    "type": "tamsayı",
                    "description": "Kullanılacak mevcut donanım kesme noktası sayısının isteğe bağlı sınırı. Yalnızca \"require\" değeri true olduğunda ve \"limit\" değeri 0'dan büyük olduğunda zorlanır. \nVarsayılan değer 0'dır."
                  }
                }
              }
            }
          },
          "cppTemplateLayout": {
            "allOf": [
              {
                "$ref": "#/definitions/default"
              },
              {
                "$ref": "#/definitions/cpp_schema"
              }
            ]
          }
        },
        "configuration": "#/definitions/cppTemplateLayout"
      }
    }
  }
}