Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion docs/debugger/format-specifiers-in-cpp.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Format specifiers in the debugger (C++)"
description: Use a format specifier to change the format in which a value is displayed in a Watch, Autos, or Locals window. This article provides usage details.
ms.date: 12/12/2025
ms.date: 06/15/2026
ms.topic: concept-article
dev_langs:
- "C++"
Expand Down Expand Up @@ -66,6 +66,7 @@ The following tables describe the format specifiers that you can use in Visual S
|b|unsigned binary integer|25|0b00000000000000000000000000011001|
|bb|unsigned binary integer(without leading 0b)|25|00000000000000000000000000011001|
|e|scientific notation|25000000|2.500000e+07|
|f|fixed-point floating point|25000000|25000000.000000|
|g|shorter of scientific or floating point|25000000|2.5e+07|
|c|single character|0x0065|101 'e'|
|s|const char* string (with quotation marks)|\<location> "hello world"|"hello world"|
Expand All @@ -86,6 +87,7 @@ The following tables describe the format specifiers that you can use in Visual S
|wc|Window class flag|0x0010|WC_DEFAULTCHAR|
|wm|Windows message numbers|16|WM_CLOSE|
|nr|Suppress "Raw View" item|
|fe|bit flags enum (use when auto detection fails)|6|flag1 \| flag2 (6)|
|nvo|Show "Raw View" item for numeric values only|
|!|raw format, ignoring any data type views customizations|\<customized representation>|4|
|handle|Displays information about win32 handle|0x000000000000009c| Displays useful information about handle such as thread ID, etc. |
Expand Down
12 changes: 7 additions & 5 deletions docs/msbuild/target-element-msbuild.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Contains a set of tasks for MSBuild to execute sequentially.
|Attribute|Description|
|---------------|-----------------|
|`Name`|Required attribute.<br /><br /> The name of the target. A target name may contain any character except `$@()%*?.`.|
|`Condition`|Optional attribute.<br /><br /> The condition to be evaluated. If the condition evaluates to `false`, the target will not execute the body of the target or any targets that are set in the `DependsOnTargets` attribute. For more information about conditions, see [Conditions](../msbuild/msbuild-conditions.md).|
|`Condition`|Optional attribute.<br /><br /> The condition to be evaluated. If the condition evaluates to `false`, the target won't execute the body of the target or any targets that are set in the `DependsOnTargets` attribute. For more information about conditions, see [Conditions](../msbuild/msbuild-conditions.md).|
|`Inputs`|Optional attribute.<br /><br /> The files that form inputs into this target. Multiple files are separated by semicolons. The timestamps of the files will be compared with the timestamps of files in `Outputs` to determine whether the `Target` is up to date. For more information, see [Incremental builds](../msbuild/incremental-builds.md), [How to: Build incrementally](../msbuild/how-to-build-incrementally.md), and [Transforms](../msbuild/msbuild-transforms.md).|
|`Outputs`|Optional attribute.<br /><br /> The files that form outputs into this target. Multiple files are separated by semicolons. The timestamps of the files will be compared with the timestamps of files in `Inputs` to determine whether the `Target` is up to date. For more information, see [Incremental builds](../msbuild/incremental-builds.md), [How to: Build incrementally](../msbuild/how-to-build-incrementally.md), and [Transforms](../msbuild/msbuild-transforms.md).|
|`Returns`|Optional attribute.<br /><br /> The set of items that will be made available to tasks that invoke this target, for example, MSBuild tasks. Multiple targets are separated by semicolons. If the targets in the file have no `Returns` attributes, the Outputs attributes are used instead for this purpose.|
Expand Down Expand Up @@ -86,15 +86,17 @@ Contains a set of tasks for MSBuild to execute sequentially.

A target is only executed once during a build, even if more than one target has a dependency on it.

If a target is skipped because its `Condition` attribute evaluates to `false`, it can still be executed if it is invoked later in the build and its `Condition` attribute evaluates to `true` at that time.
If a target is skipped because its `Condition` attribute evaluates to `false`, it can still be executed if it's invoked later in the build and its `Condition` attribute evaluates to `true` at that time.

Before MSBuild 4, `Target` returned any items that were specified in the `Outputs` attribute. To do this, MSBuild had to record these items in case tasks later in the build requested them. Because there was no way to indicate which targets had outputs that callers would require, MSBuild accumulated all items from all `Outputs` on all invoked `Target`s. This lead to scaling problems for builds that had a large number of output items.
Before MSBuild 4, `Target` returned any items that were specified in the `Outputs` attribute. To do this, MSBuild had to record these items in case tasks later in the build requested them. Because there was no way to indicate which targets had outputs that callers would require, MSBuild accumulated all items from all `Outputs` on all invoked `Target`s. This led to scaling problems for builds that had a large number of output items.

If the user specifies a `Returns` on any `Target` element in a project, then only those `Target`s that have a `Returns` attribute record those items.

A `Target` may contain both an `Outputs` attribute and a `Returns` attribute. `Outputs` is used with `Inputs` to determine whether the target is up-to-date. `Returns`, if present, overrides the value of `Outputs` to determine which items are returned to callers. If `Returns` is not present, then `Outputs` will be made available to callers except in the case described earlier.
A `Target` may contain both an `Outputs` attribute and a `Returns` attribute. `Outputs` is used with `Inputs` to determine whether the target is up-to-date. `Returns`, if present, overrides the value of `Outputs` to determine which items are returned to callers. If `Returns` isn't present, then `Outputs` will be made available to callers except in the case described earlier.

Before MSBuild 4, any time that a `Target` included multiple references to the same item in its `Outputs`, those duplicate items would be recorded. In very large builds that had a large number of outputs and many project interdependencies, this would cause a large amount of memory to be wasted because the duplicate items were not of any use. When the `KeepDuplicateOutputs` attribute is set to `true`, these duplicates are recorded.
The result made available to callers via `Outputs` or `Returns` is captured immediately after the target completes. Inspecting the state of the same item expression later may return different results, for instance if another target hooked the target with `AfterTargets` and modified the returned item list (after the target completed but before returning control to the caller of the target).

Before MSBuild 4, any time that a `Target` included multiple references to the same item in its `Outputs`, those duplicate items would be recorded. In very large builds that had a large number of outputs and many project interdependencies, this would cause a large amount of memory to be wasted because the duplicate items weren't of any use. When the `KeepDuplicateOutputs` attribute is set to `true`, these duplicates are recorded.

## Example

Expand Down