Skip to content

Commit 30979ab

Browse files
author
Colin Robertson
committed
Updates to reporting instructions per dev team
1 parent 12d8713 commit 30979ab

File tree

1 file changed

+66
-33
lines changed

1 file changed

+66
-33
lines changed

docs/how-to-report-a-problem-with-the-visual-cpp-toolset.md

Lines changed: 66 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,11 @@ ms.workload: ["cplusplus"]
1212

1313
If you encounter problems with the Microsoft Visual C++ compiler, linker, or other tools and libraries, we want to know about them. If the issue is in our documentation, we want to know about that, too.
1414

15-
## How to report a C++ documentation issue
16-
17-
We use GitHub issues to track problems reported in our documentation. You can now create GitHub issues directly from a content page, which enables you interact in a much richer way with writers and product teams. If you see an issue with a document, a bad code sample, a confusing explanation, a critical omission, or even just a typo, you can easily let us know. Scroll to the bottom of the page and select **Sign in to give documentation feedback**. You'll need to create a GitHub account if you don't have one already, but once you do, you can see all of our documentation issues, their status, and get notifications when changes are made for the issue you reported. For more information, see [A New Feedback System Is Coming to docs.microsoft.com](/teamblog/a-new-feedback-system-is-coming-to-docs).
18-
19-
When you create a documentation issue on GitHub by using the documentation feedback button, the issue is automatically filled in with some information about the page you created the issue on, so we know where the problem is located. Please don't edit this information. Just append the details about what's wrong and, if you like, a suggested fix. [Our documentation is open source](https://github.com/MicrosoftDocs/cpp-docs/), so if you'd like to actually make a fix and propose it yourself, you can do that. For more information about how you can contribute to our documentation, see our [Contributing guide](https://github.com/MicrosoftDocs/cpp-docs/blob/master/CONTRIBUTING.md) on GitHub.
20-
21-
## How to report a C++ product issue
15+
## How to report a C++ toolset issue
2216

2317
The best way to let us know about a problem is to send us a report that includes a description of the problem you've encountered, details about how you're building your program, and a *repro*, a complete test case we can use to reproduce the problem on our own machines. This information lets us quickly verify that the problem exists in our code and is not local to your environment, to determine whether it affects other versions of the compiler, and to diagnose its cause.
2418

25-
In thie sections below, you'll read about what makes a good report, how to generate a repro for the kind of issue you've found, and how to send your report to the product team. Your reports are important to us and to other developers like you. Thank you for helping us improve Visual C++!
19+
In the sections below, you'll read about what makes a good report, how to generate a repro for the kind of issue you've found, and how to send your report to the product team. Your reports are important to us and to other developers like you. Thank you for helping us improve Visual C++!
2620

2721
## How to prepare your report
2822

@@ -48,16 +42,25 @@ We need the full version information and the target architecture of the toolset
4842

4943
1. Open the **Developer Command Prompt** that matches the Visual Studio version and configuration architecture used to build your project. For example, if you build by using Visual Studio 2017 on x64 for x64 targets, choose **x64 Native Tools Command Prompt for VS 2017**. For more information, see [Developer command prompt shortcuts](build/building-on-the-command-line.md#developer-command-prompt-shortcuts).
5044

51-
1. In the developer command prompt console window, enter the command **cl**.
45+
1. In the developer command prompt console window, enter the command **cl /Bv**.
5246

5347
The output should look similar to this:
5448

5549
```Output
56-
C:\Users\username\Source>cl
57-
Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x64
50+
C:\Users\username\Source>cl /Bv
51+
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26428.1 for x86
5852
Copyright (C) Microsoft Corporation. All rights reserved.
5953
60-
usage: cl [ option... ] filename... [ /link linkoption... ]
54+
Compiler Passes:
55+
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.14.26428\bin\HostX86\x86\cl.exe: Version 19.14.26428.1
56+
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.14.26428\bin\HostX86\x86\c1.dll: Version 19.14.26428.1
57+
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.14.26428\bin\HostX86\x86\c1xx.dll: Version 19.14.26428.1
58+
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.14.26428\bin\HostX86\x86\c2.dll: Version 19.14.26428.1
59+
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.14.26428\bin\HostX86\x86\link.exe: Version 14.14.26428.1
60+
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.14.26428\bin\HostX86\x86\mspdb140.dll: Version 14.14.26428.1
61+
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.14.26428\bin\HostX86\x86\1033\clui.dll: Version 19.14.26428.1
62+
63+
cl : Command line error D8003 : missing source filename
6164
```
6265

6366
Copy and paste the entire output into your report.
@@ -243,12 +246,56 @@ After you have generated the preprocessed file, its a good idea to make sure tha
243246

244247
#### To confirm that the error still repros with the preprocessed file
245248

246-
1. In the developer command prompt console window, enter the command **cl** *arguments* **/TP** *filename***.i** to tell cl.exe to compile the preprocessed file as a C++ source file, where *arguments* is the list of arguments captured above, but with any **/D** and **/I** arguments removed (because they have already been included in the preprocessed file); and where *filename***.i** is the name of your preprocessed file.
249+
1. In the developer command prompt console window, enter the command **cl** *arguments* **/TP** *filename*.i to tell cl.exe to compile the preprocessed file as a C++ source file, where *arguments* is the list of arguments captured above, but with any **/D** and **/I** arguments removed (because they have already been included in the preprocessed file); and where *filename*.i is the name of your preprocessed file.
247250

248251
1. Confirm that the problem is reproduced.
249252

250253
Finally, attach the preprocessed repro *filename*.i to your report.
251254

255+
#### Extra steps for C++/CX and WinRT / UWP repros
256+
257+
If you're using C++/CX to build your executable, there are some extra steps required to create and validate a preprocessed repro.
258+
259+
1. Create a preprocessed source file as described in [To preprocess a source code file](#to-preprocess-a-source-code-file).
260+
261+
1. Search the generated _filename_.i file for **#using** directives.
262+
263+
1. Make a list of all of the referenced files. Leave out any Windows\*.winmd files, platform.winmd files, and mscorlib.dll.
264+
265+
To prepare to validate that the preprocessed file still reproduces the problem,
266+
267+
1. Create a new directory for the preprocessed file and copy it to the new directory.
268+
269+
1. Copy the .winmd files from your **#using** list to the new directory.
270+
271+
1. Create an empty vccorlib.h file in the new directory.
272+
273+
1. Edit the preprocessed file to remove any **#using** directives for mscorlib.dll.
274+
275+
1. Edit the preprocessed file to change any absolute paths to just the bare filenames for the copied .winmd files.
276+
277+
Confirm that the preprocessed file still reproduces the problem, as above.
278+
279+
#### Steps for C++ Modules repros
280+
281+
If you're using the Modules feature of the C++ compiler, there are some different steps required to create and validate a preprocessed repro.
282+
283+
1. Capture the command line arguments used to build your repro, as described in [To report the contents of the command line](#to-report-the-contents-of-the-command-line).
284+
285+
1. Open the **Developer Command Prompt** that matches the Visual Studio version and configuration architecture used to build your project.
286+
287+
1. Change to the directory that contains your repro project.
288+
289+
1. In the developer command prompt console window, enter the command **cl /P** *arguments* *filename.cpp*, where *arguments* is the list of arguments captured above, and *filename.cpp* is the name of the source file that consumes the module.
290+
291+
1. Change to the directory that contains the repro project that built the module interface (the .ifc output).
292+
293+
1. Capture the command line arguments used to build your module interface.
294+
295+
1. In the developer command prompt console window, enter the command **cl /P** *arguments* *modulename.ixx*, where *arguments* is the list of arguments captured above, and *modulename.ixx* is the name of the file that creates the module interface.
296+
297+
Finally, attach the preprocessed repros (filename.i and modulename.i) along with the .ifc output to your report.
298+
252299
### Link repros
253300

254301
A *link repro* is the linker-generated contents of a directory specified by the **link\_repro** environment variable. It contains build artifacts that collectively demonstrate a problem that occurs at link time, such as a backend crash involving Link-Time Code Generation (LTCG), or a linker crash. These build artifacts are the ones needed as linker input so that the problem can be reproduced. A link repro can be created easily by using this environment variable to enable the built-in repro generation capability of the linker.
@@ -283,7 +330,7 @@ Create your repro as a minimal IDE project, then package it by compressing the e
283330

284331
## Ways to send your report
285332

286-
There are several ways to get your report to us. You can use Visual Studio's built-in [Report a Problem Tool](/visualstudio/ide/how-to-report-a-problem-with-visual-studio-2017), or the [Visual Studio Developer Community](https://developercommunity.visualstudio.com/) pages. You can also get directly to our Developer Community pages by choosing the **Product feedback** button at the bottom of this page. It's also possible to send an email with your report, but the first two methods are preferred. The choice depends on how you want to interact with the engineers who will investigate your report, and whether you'd like to track its progress or share your report with the community.
333+
There are a couple of good ways to get your report to us. You can use Visual Studio's built-in [Report a Problem Tool](/visualstudio/ide/how-to-report-a-problem-with-visual-studio-2017), or the [Visual Studio Developer Community](https://developercommunity.visualstudio.com/) pages. You can also get directly to our Developer Community pages by choosing the **Product feedback** button at the bottom of this page. The choice depends on how you want to interact with the engineers who will investigate your report, and whether you'd like to track its progress or share your report with the community.
287334

288335
> [!NOTE]
289336
> Regardless of how you submit your report, Microsoft respects your privacy. For information about how we treat the data that you send us, see the [Microsoft Visual Studio Product Family Privacy Statement](https://www.visualstudio.com/dn948229).
@@ -304,26 +351,12 @@ In the Developer Community banner near the top of each page is a search box you
304351

305352
If your problem has not been reported before, choose the **Report a problem** button next to the search box on the Developer Community page. You may be asked to sign in to your Visual Studio account and to agree to give the Developer Community app access to your profile. When you are signed in, you go directly to a page where you can report the problem. You can include your repro code and command line, screen shots, links to related discussions, and any other information you think is relevant and useful.
306353

307-
### Send an Email
308-
309-
Email is another way to send your report directly to the Visual C++ team. You can reach us at [[email protected]](mailto:[email protected]). Use this method only if the other two are unavailable, since email is not tracked as closely as the problems reported to the Developer Community by using the **Report a Problem** tool or the web pages, and comments and solutions are not visible to other Visual Studio users.
310-
311-
If you choose to send your report by email, you can use the following template as the body of your email message. Don't forget to attach source code or other files if you aren't including that information in the email body.
312-
313-
```Example
314-
315-
Subject: Visual C++ Error Report
316-
-----
317-
318-
Compiler version:
319-
320-
CL.EXE command line:
354+
> [!TIP]
355+
> For other kinds of problems you might encounter in Visual Studio that are not related to the toolset (For example, UI issues, broken IDE functionality, or general crashes), the **Report a Problem tool** can be an especially good choice due to its screenshot capabilities and its ability to record UI actions that lead to the problem you've encountered. These kinds of errors can also be reported on the [Developer Community](https://developercommunity.visualstudio.com/) site.
321356
322-
Problem description:
357+
## How to report a C++ documentation issue
323358

324-
Source code and repro steps:
359+
We use GitHub issues to track problems reported in our documentation. You can now create GitHub issues directly from a content page, which enables you interact in a much richer way with writers and product teams. If you see an issue with a document, a bad code sample, a confusing explanation, a critical omission, or even just a typo, you can easily let us know. Scroll to the bottom of the page and select **Sign in to give documentation feedback**. You'll need to create a GitHub account if you don't have one already, but once you do, you can see all of our documentation issues, their status, and get notifications when changes are made for the issue you reported. For more information, see [A New Feedback System Is Coming to docs.microsoft.com](/teamblog/a-new-feedback-system-is-coming-to-docs).
325360

326-
```
361+
When you create a documentation issue on GitHub by using the documentation feedback button, the issue is automatically filled in with some information about the page you created the issue on, so we know where the problem is located. Please don't edit this information. Just append the details about what's wrong and, if you like, a suggested fix. [Our documentation is open source](https://github.com/MicrosoftDocs/cpp-docs/), so if you'd like to actually make a fix and propose it yourself, you can do that. For more information about how you can contribute to our documentation, see our [Contributing guide](https://github.com/MicrosoftDocs/cpp-docs/blob/master/CONTRIBUTING.md) on GitHub.
327362

328-
> [!TIP]
329-
> For other kinds of problems you might encounter in Visual Studio that are not related to the toolset (For example, UI issues, broken IDE functionality, or general crashes), the **Report a Problem tool** can be an especially good choice due to its screenshot capabilities and its ability to record UI actions that lead to the problem you've encountered. These kinds of errors can also be reported on the [Developer Community](https://developercommunity.visualstudio.com/) site. You should never report these other kinds of errors by sending email to [email protected].

0 commit comments

Comments
 (0)