You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -30,7 +30,7 @@ In a CMake project, build configurations are stored in a *`CMakeSettings.json`*
30
30
31
31
When you choose a configuration, it's added to the *`CMakeSettings.json`* file in the project's root folder. You can then use it to build your project. For information about the configuration properties, see [CMakeSettings reference](cmakesettings-reference.md).
Copy file name to clipboardExpand all lines: docs/build/launch-vs-schema-reference-cpp.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ To create the file, right-click on an executable file in **Solution Explorer** a
17
17
|`args`| array | Specifies the command-line arguments passed to the launched program. |
18
18
|`buildConfigurations`| array | A key-value pair that specifies the name of the build mode to apply the configurations. For example, `Debug` or `Release` and the configurations to use according to the selected build mode. |
19
19
|`currentDir`| string | Specifies the full directory path to the Build Target. The directory is detected automatically unless this parameter is set. |
20
-
|`cwd`| string | Full path to the directory on the remote system where the program will run. Defaults to `"${debugInfo.defaultWorkingDirectory}"`|
20
+
|`cwd`| string | Full path to the directory on the remote system where the program will run. Defaults to `"${debugInfo.defaultWorkingDirectory}"`.|
21
21
|`debugType`| string | Specifies the debugging mode according to the type of code (native, managed, or mixed). The mode is automatically detected unless this parameter is set. Allowed values: `"native"`, `"managed"`, `"mixed"`. |
22
22
|`env`| array | Specifies a key-value list of custom environment variables. For example: `env:{"myEnv":"myVal"}`. |
23
23
|`inheritEnvironments`| array | Specifies a set of environment variables inherited from multiple sources. You can define some variables in files like *`CMakeSettings.json`* or *`CppProperties.json`* and make them available to debug context. **Visual Studio 16.4:** Specify environment variables on a per-target basis using the `env.VARIABLE_NAME` syntax. To unset a variable, set it to `"null"`. |
@@ -27,9 +27,9 @@ To create the file, right-click on an executable file in **Solution Explorer** a
27
27
|`program`| string | The debug command to execute. Defaults to `"${debugInfo.fullTargetPath}"`. |
28
28
|`project`| string | Specifies the relative path to the project file. Normally, you don't need to change this value when debugging a CMake project. |
29
29
|`projectTarget`| string | Specifies the optional target invoked when building `project`. The target must match the name in the **Startup Item** dropdown. |
30
-
|`stopOnEntry`| boolean | Specifies whether to break a soon as the process is launched and the debugger attaches. The default value for this parameter is **`false`**. |
30
+
|`stopOnEntry`| boolean | Specifies whether to break as soon as the process is launched and the debugger attaches. The default value for this parameter is **`false`**. |
31
31
|`remoteMachine`| string | Specifies the name of the remote machine where the program is launched. |
32
-
|`type`| string | Specifies whether the project is a `dll` or `exe` Defaults to .exe |
32
+
|`type`| string | Specifies whether the project is a `dll` or `exe`. Defaults to `"exe"`.|
33
33
34
34
## C++ Linux properties
35
35
@@ -64,7 +64,7 @@ The following macros provide information about the debugging environment. They'r
64
64
65
65
| Macro | Description | Example |
66
66
|--|--|--|
67
-
|`addressSanitizerRuntimeFlags`| Runtime flags used to customize behavior of the address sanitizer. Used to set the environment variable `"ASAN_OPTIONS"`. |`"env": {"ASAN_OPTIONS": "${addressSanitizerRuntimeFlags}:anotherFlag=true"`}|
67
+
|`addressSanitizerRuntimeFlags`| Runtime flags used to customize behavior of the address sanitizer. Used to set the environment variable `"ASAN_OPTIONS"`. |`"env": {"ASAN_OPTIONS": "${addressSanitizerRuntimeFlags}:anotherFlag=true"}`|
68
68
|`defaultWorkingDirectory`| Set to the directory part of `"fullTargetPath"`. If the CMake variable `VS_DEBUGGER_WORKING_DIRECTORY` is defined, then `defaultWorkingDirectory` is set to that value, instead. |`"cwd":"${debugInfo.defaultWorkingDirectory}"`|
69
69
|`fullTargetPath`| The full path to the binary being debugged. |`"program": "${debugInfo.fullTargetPath}"`|
70
70
|`linuxNatvisPath`| The full windows path to the VS linux `.natvis` file. Usually appears as the value `"visualizerFile"`. ||
@@ -98,7 +98,7 @@ The pipeTransport example below shows how to use some of the `debugInfo` macros
98
98
"/c",
99
99
"${debuggerCommand}"
100
100
]
101
-
}
101
+
}
102
102
```
103
103
104
104
## <aname="remote_deploy_debug"></a> C++ Windows remote debug and deploy properties
@@ -109,8 +109,8 @@ Used when debugging and deploying an app on a remote machine.
109
109
|--|--|--|
110
110
|`cwd`| string | The working directory of the target on the remote machine. When using CMake, the macro `${debugInfo.defaultWorkingDirectory}` can be used as the value of this field. The default value is the directory of the debug program/command. |
111
111
|`deploy`| string | Specifies extra files or directories to deploy. For example:<br> `"deploy": {"sourcePath":"<Full path to source file/directory on host machine>", "targetPath":"<Full destination path to file/directory on target machine>"}`|
112
-
|`deployDirectory`| string | The location on the remote machine where project outputs are automatically deployed to. Defaults to "`C:\Windows Default Deploy Directory\<name of app>`|
113
-
|`deployDebugRuntimeLibraries`| string | Specifies whether to deploy the debug runtime libraries for the active platform. Defaults to `"true"` if the active configurationType is `"Debug"`|
112
+
|`deployDirectory`| string | The location on the remote machine where project outputs are automatically deployed to. Defaults to `"C:\Windows Default Deploy Directory\<name of app>"`.|
113
+
|`deployDebugRuntimeLibraries`| string | Specifies whether to deploy the debug runtime libraries for the active platform. Defaults to `"true"` if the active configurationType is `"Debug"`.|
114
114
|`deployRuntimeLibraries`| string | Specifies whether to deploy the runtime libraries for the active platform. Defaults to `"true"` if the active configurationType is `"MinSizeRel"`, `"RelWithDebInfo"`, or `"Release"`. |
115
115
|`disableDeploy`| boolean | Specifies whether files should be deployed. |
116
116
|`remoteMachineName`| string | Specifies the name of the remote ARM64 Windows machine where the program is launched. May be the server name or the remote machine's IP address. |
@@ -42,7 +42,7 @@ The **`/fpcvt`** options are new in Visual Studio 2019 version 16.8. If you spec
42
42
43
43
### Intrinsic functions for conversions
44
44
45
-
You can specify the behavior of a specific conversion independently of the **`/fpcvt`** option, which applies globally. The compiler provides intrinsic sentinel conversion functions for conversions compatible with **`/fpcvt:IA`**. For more information, see [Sentinel conversion functions](../../intrinsics/sentinel-conversion-functions.md). The compiler also provides saturation conversion functions compatible with conversions on ARM or ARM64 target architectures. For more information, see [Saturation conversion functions](../../intrinsics/saturation-conversion-functions.md).
45
+
You can specify the behavior of a specific conversion independently of the **`/fpcvt`** option, which applies globally. The compiler provides intrinsic sentinel conversion functions for conversions compatible with **`/fpcvt:IA`**. For more information, see [Sentinel conversion functions](../../intrinsics/sentinel-conversion-functions.md). The compiler also provides saturation conversion functions compatible with conversions on ARM or ARM64 target architectures. For more information, see [Saturation conversion functions](../../intrinsics/saturation-conversion-functions.md).
46
46
47
47
The compiler also supports intrinsic conversion functions that execute as quickly as possible for valid conversions. These functions may generate any value or throw an exception for an invalid conversion. The results depend on the target platform, compiler options, and context. They're useful for handling values that have already been range-checked, or values generated in a way that can't cause an invalid conversion. For more information, see [Fast conversion functions](../../intrinsics/fast-conversion-functions.md).
@@ -21,7 +21,7 @@ The **`/guard:cf`** option causes the compiler to analyze control flow for indir
21
21
22
22
When the **`/guard:cf`** Control Flow Guard (CFG) option is specified, the compiler and linker insert extra runtime security checks to detect attempts to compromise your code. During compiling and linking, all indirect calls in your code are analyzed to find every location that the code can reach when it runs correctly. This information is stored in extra structures in the headers of your binaries. The compiler also injects a check before every indirect call in your code that ensures the target is one of the verified locations. If the check fails at runtime on a CFG-aware operating system, the operating system closes the program.
23
23
24
-
A common attack on software takes advantage of bugs in handling extreme or unexpected inputs. Carefully crafted input to the application may overwrite a location that contains a pointer to executable code. This technique can be used to redirect control flow to code controlled by the attacker. The CFG runtime checks don't fix the data corruption bugs in your executable. They instead make it more difficult for an attacker to use them to execute arbitrary code. CFG is a mitigation tool that prevents calls to locations other than function entry points in your code. It's similar to how Data Execution Prevention (DEP), [/GS](gs-buffer-security-check.md) stack checks, and [`/DYNAMICBASE`](dynamicbase-use-address-space-layout-randomization.md) and [/HIGHENTROPYVA](highentropyva-support-64-bit-aslr.md) address space layout randomization (ASLR) lower the chances that your code becomes an exploit vector.
24
+
A common attack on software takes advantage of bugs in handling extreme or unexpected inputs. Carefully crafted input to the application may overwrite a location that contains a pointer to executable code. This technique can be used to redirect control flow to code controlled by the attacker. The CFG runtime checks don't fix the data corruption bugs in your executable. They instead make it more difficult for an attacker to use them to execute arbitrary code. CFG is a mitigation tool that prevents calls to locations other than function entry points in your code. It's similar to how Data Execution Prevention (DEP), [/GS](gs-buffer-security-check.md) stack checks, and [`/DYNAMICBASE`](dynamicbase-use-address-space-layout-randomization.md) and [/HIGHENTROPYVA](highentropyva-support-64-bit-aslr.md) address space layout randomization (ASLR) lower the chances that your code becomes an exploit vector.
25
25
26
26
To use the CFG exploit mitigation technique, pass **`/guard:cf`** to the compiler and **`/GUARD:CF`** to the linker.
0 commit comments