Visual C++ ツールセットまたはドキュメントの問題を報告する方法How to report a problem with the Visual C++ toolset or documentation

Microsoft Visual C++ のコンパイラ、リンカー、その他のツールとライブラリを使っていて問題が発生した場合は、Microsoft にお知らせください。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.

Visual C++ ツールセットの問題を報告する方法How to report a C++ toolset issue

問題についてのご連絡に最適な方法は、発生した問題の説明、プログラムの作成方法の詳細、および Microsoft のコンピューターで問題を再現するために使うことができる再現コード、完全なテスト ケースを含む、レポートをお送りいただくことです。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. この情報があると、短時間で、Microsoft のコードに問題が存在していて、報告者の環境だけの問題ではないことを確認すること、また、コンパイラの他のバージョンに影響があるかどうかを特定して、原因を診断することができます。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.

以下のセクションでは、よいレポートの特長、発見した問題の再現方法、製品チームへのレポートの送信方法について説明します。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. レポートは、Microsoft にとっても他の開発者にとっても重要です。Your reports are important to us and to other developers like you. Visual C++ の向上にご協力いただきありがとうございます。Thank you for helping us improve Visual C++!

レポートを準備する方法How to prepare your report

完全な情報がないと Microsoft のコンピューターで問題を再現するのはとても困難なので、質の高いレポートを作成することが重要です。Creating a high-quality report is important because it is very difficult to reproduce the problem you encountered on our own machines without complete information. レポートの質がよいほど、より効果的に問題を再現して診断できます。The better your report is, the more effectively we are able recreate and diagnose the problem.

レポートには少なくとも次の情報を含める必要があります。At a minimum, your report should contain

  • 使っているツールセットの完全なバージョン情報。The full version information of the toolset you're using.

  • コードをビルドするために使った完全な cl.exe コマンド ライン。The full cl.exe command line used to build your code.

  • 発生した問題の詳細な説明。A detailed description of the problem you encountered.

  • 再現コードは、問題を実際に示す完全な簡素化された自己完結型のソース コード例です。A repro: a complete, simplified, self-contained source code example that demonstrates the problem.

具体的に必要な情報およびそれが見つかる場所、および最適な再現コードの作成方法については以下で説明します。Read on to learn more about the specific information we need and where you can find it, and how to create a good repro.

ツールセットのバージョンThe toolset version

Microsoft のコンピューターで同じツールセットに対して再現コードをテストできるように、問題を引き起こすツールセットの完全なバージョン情報とターゲット アーキテクチャが必要です。We need the full version information and the target architecture of the toolset that causes the problem so that we can test your repro against the same toolset on our machines. 問題を再現できる場合、この情報を基にして同じ問題が発生するツールセットの他のバージョンを調査できます。If we can reproduce the problem, this information also gives us a starting point to investigate which other versions of the toolset exhibit the same problem.

使っているコンパイラの完全バージョンを報告するにはTo report the full version of the compiler you're using

  1. プロジェクトをビルドするために使用した Visual Studio のバージョンと構成アーキテクチャに一致する開発者コマンド プロンプトを開きます。Open the Developer Command Prompt that matches the Visual Studio version and configuration architecture used to build your project. たとえば、x64 ターゲットに対して、x64 で Visual Studio 2017 を使用してビルドする場合は、VS 2017 用の x64 Native Tools コマンド プロンプトを選びます。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.

  2. 開発者コマンド プロンプト コンソール ウィンドウで、コマンド cl /Bv を入力します。In the developer command prompt console window, enter the command cl /Bv.

出力は次のようになります。The output should look similar to this:

C:\Users\username\Source>cl /Bv
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26428.1 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

Compiler Passes:
 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
 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
 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
 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
 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
 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
 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

cl : Command line error D8003 : missing source filename

出力全体をコピーして、レポートに貼り付けます。Copy and paste the entire output into your report.

コマンド ラインThe command line

Microsoft のコンピューターでコードをまったく同じ方法でビルドできるように、コードのビルドに使ったのと同じコマンド ライン (cl.exe とそのすべての引数) が必要です。We need the exact command line (cl.exe and all of its arguments) used to build your code, so that we can build it in exactly the same way on our machines. これは、特定の引数または引数の組み合わせを使ってビルドしたときにのみ問題が発生する可能性があるので重要です。This is important because the problem you've encountered might only exist when building with a certain argument or combination of arguments.

この情報を検索する最適な場所は、問題が発生した直後のビルド ログです。The best place to find this information is in the build log immediately after experiencing the problem. このようにすると、問題の原因となった可能性があるまったく同じ引数がコマンド ラインに確実に含まれます。This ensures that the command line contains exactly the same arguments that might be contributing to the problem.

コマンド ラインの内容を報告するにはTo report the contents of the command line

  1. CL.command.1.tlog ファイルを探して開きます。Locate the CL.command.1.tlog file and open it. 既定では、このファイルは、\Visual Studio version\Projects\SolutionName\ProjectName\Configuration\ProjectName.tlog\CL.command.1.tlog 内のドキュメント フォルダー内、または \Source\Repos\SolutionName\ProjectName\Configuration\ProjectName.tlog\CL.command.1.tlog の下のご自分のユーザー フォルダー内にあります。By default, this file is located in your Documents folder in \Visual Studio version\Projects\SolutionName\ProjectName\Configuration\ProjectName.tlog\CL.command.1.tlog, or in your User folder under \Source\Repos\SolutionName\ProjectName\Configuration\ProjectName.tlog\CL.command.1.tlog. 別のビルド システムを使用している場合、またはプロジェクトの既定の場所を変更した場合は、別の場所にある可能性があります。It may be in a different location if you use another build system or if you have changed the default location for your project.

    このファイルで、ソース コード ファイルの名前と、コンパイルに使われたコマンド ライン引数を探します。これらは別々の行になっています。Inside this file, you'll find the names of source code files followed by the command line arguments used to compile them, each on separate lines.

  2. 問題が発生したソース コード ファイルの名前を含む行を探します。その下の行には、対応する cl.exe コマンド引数が含まれています。Locate the line that contains the name of the source code file where the problem occurs; the line below it contains the corresponding cl.exe command arguments.

コマンド ライン全体をコピーして、レポートに貼り付けます。Copy and paste the entire command line into your report.

問題の説明A description of the problem

弊社のコンピューターで同じ結果を見ていることを確認できるように、問題の詳細な説明が必要です。また、実行しようとしていたこと、および予想された結果をお知らせいただくと、役に立つ場合があります。We need a detailed description of the problem you've encountered so that we can verify that we see the same effect on our machines; its also sometimes useful for us to know what you were trying to accomplish, and what you expected to happen.

ツールセットで表示する正確なエラー メッセージ、または表示される正確な実行時の動作を指定します。Please provide the exact error messages given by the toolset, or the exact runtime behavior you see. この情報は、問題が正しく再現されたことを Microsoft が確認するために必要です。We need this information to verify that we've properly reproduced the issue. 最後のエラー メッセージだけでなく、すべてのコンパイラ出力を含めてください。Please include all of the compiler output, not just the last error message. Microsoft では、報告する問題が発生するまでのすべてのことを確認する必要があります。We need to see everything that led up to the issue you report. コマンド ライン コンパイラを使用して問題を複製できる場合は、そのコンパイラの出力が推奨されます。IDE およびその他のビルド システムは、表示されるエラー メッセージがフィルター処理されたり、エラー メッセージの最初の行のみがキャプチャされたりする場合があります。If you can duplicate the issue by using the command line compiler, that compiler output is preferred; the IDE and other build systems may filter the error messages you see, or only capture the first line of an error message.

コンパイラが無効なコードを受け入れ、診断を生成しないことが問題の場合、このことをレポートに記載してください。If the issue is that the compiler accepts invalid code and does not generate a diagnostic, please note this in your report.

実行時の動作の問題を報告するには、プログラムで出力されたものの正確なコピーと、表示されるべきものを含めます。To report a runtime behavior problem, include an exact copy of what the program prints out, and what you expect to see. たとえば printf("This should be 5: %d\n", actual_result); のように、これが出力ステートメントそのものに含まれているのが理想的です。Ideally, this is embedded in the output statement itself, for example, printf("This should be 5: %d\n", actual_result);. プログラムがクラッシュまたはハングする場合は、そのことも記載してください。If your program crashes or hangs, mention that as well.

発生した問題の診断に役立つ可能性があるその他の詳細 (自分で見つけた回避策など) を追加します。Add any other details that might help us diagnose the problem you experienced, such as any work-arounds you may have found. レポートの別の場所にある情報を繰り返し記載しないでください。Avoid repeating information found elsewhere in your report.

再現コードThe repro

再現コードは、再現可能な方法で発生している問題を示す、完全な自己完結型のソース コード例です (これが名前の由来です)。A repro is a complete, self-contained source code example that reproducibly demonstrates the problem you've encountered (hence the name). 再現コードは、Microsoft のコンピューターでエラーを再現できるようにするために必要です。We need a repro so that we can reproduce the error on our machines. コードは、それだけでコンパイルして実行する、または見つかった問題がなければ、コンパイルして実行できたはずの単純な実行可能ファイルを作成するのに十分である必要があります。The code should be sufficient by itself to create a simple executable that compiles and runs, or that would compile and run if not for the problem you've found. 再現コードはコード スニペットではありません。完全な関数とクラスがあり、標準のヘッダーに対しても、必要なすべての #include ディレクティブが含まれている必要があります。A repro is not a code snippet; it should have complete functions and classes and contain all the necessary #include directives, even for the standard headers.

適切な再現コードを作成にはWhat makes a good repro

適切な再現コード:A good repro is:

  • 最小限であるMinimal. 再現コードは、発生した問題を正確に再現しながら、可能な限り小さくする必要があります。Repros should be as small as possible yet still demonstrate exactly the problem you encountered. 再現コードは複雑または現実的なものである必要はありません。必要なのは、標準または文書化されているコンパイラの実装に準拠しているコード、または診断が存在しない場合は、適合しないコードを示すことだけです。Repros do not need to be complex or realistic; they only need to show code that conforms to the Standard or the documented compiler implementation, or in the case of a missing diagnostic, the code that is not conformant. 問題を再現するのに十分なコードを含むシンプルで的を射た再現コードが最適です。Simple, to-the-point repros that contain just enough code to demonstrate the problem are best. 準拠した状態を保ち、さらに問題を変更せずに、コードを除去または簡素化できる場合は、そのようにしてください。If you can eliminate or simplify the code and remain conformant and also leave the issue unchanged, please do so. 動作するコードの反例を含める必要はありません。You do not need to include counter-examples of code that works.

  • 自己完結的であるSelf-Contained. 再現手順には、必要のない依存関係を含めないようにする必要があります。Repros should avoid unnecessary dependencies. サード パーティ製のライブラリがなくても問題を再現できる場合は、使わずに再現してください。If you can reproduce the problem without third-party libraries, please do so. 単純な出力ステートメントだけでなく、ライブラリ コードがなくても、問題を再現できる場合は (たとえば、puts("this shouldn't compile");std::cout << value;printf("%d\n", value); は大丈夫です)、そのようにしてください。If you can reproduce the problem without any library code besides simple output statements (for example, puts("this shouldn't compile");, std::cout << value;, and printf("%d\n", value); are okay), please do so. これは、ユーザー ヘッダーへの参照なしで例を 1 つのソース コード ファイルに凝縮できる場合に最適です。It's ideal if the example can be condensed to a single source code file, without reference to any user headers. 問題の可能性のある原因として考える必要のあるコードの量を減らすことは、調査するときにとても役に立ちます。Reducing the amount of code we have to consider as a possible contributor to the problem is enormously helpful to us.

  • 最新バージョンのコンパイラが対象であるAgainst the latest compiler version. 再現コードは、最新バージョンのツールセットの最新の更新プログラム、または可能な場合には常に、次回の更新プログラムまたは次のメジャー リリースの最新のプレリリース版を使用する必要があります。Repros should use the most recent update to the latest version of the toolset, or the most recent prerelease version of the next update or next major release, whenever possible. 古いバージョンのツールセットで発生する問題の多くは、新しいバージョンで修正されています。Problems you may encounter in older versions of the toolset have very often been fixed in newer versions. 修正プログラムが以前のバージョンに移植されるのは、例外的な状況でだけです。Fixes are backported to older versions only in exceptional circumstances.

  • 他のコンパイラで確認されている (関連する場合)。Checked against other compilers if relevant. 移植可能な C++ コードに関係のある再現手順は、可能であれば、他のコンパイラで動作を確認する必要があります。Repros that involve portable C++ code should verify behavior against other compilers if possible. 標準は、プログラムの正確性を最終的に判断します。完全なコンパイラはありませんが、Clang と GCC が診断なしでコードを受け入れ、MSVC が受け入れない場合は、お使いのコンパイラのバグを見ている可能性があります The Standard ultimately determines program correctness, and no compiler is perfect, but when Clang and GCC accept your code without a diagnostic and MSVC does not, it's likely you're looking at a bug in our compiler. (その他の可能性として、UNIX と Windows の動作の違いや、C++ の標準実装のレベルの違いなどがあります)。一方、すべてのコンパイラがコードを拒否する場合は、コードが間違っている可能性があります。(Other possibilities include differences in Unix and Windows behavior, or different levels of C++ standards implementation, and so on.) On the other hand, if all the compilers reject your code, then it's likely that your code is incorrect. さまざまなエラー メッセージを見ることで、自分で問題を診断できる場合があります。Seeing different error messages may help you diagnose the issue yourself.

    コードをテストするオンライン コンパイラのリストは、ISO C++ Web サイトのオンライン C++ コンパイラ、または GitHub の選別されたオンライン C++ コンパイラのリストで見つけることができます。You can find lists of online compilers to test your code against in Online C++ compilers on the ISO C++ website, or this curated List of Online C++ Compilers on GitHub. 具体的な例には、WandboxCompiler ExplorerColiru などがあります。Some specific examples include Wandbox, Compiler Explorer, and Coliru.

    注意

    オンライン コンパイラの Web サイトは Microsoft とは関係ありません。The online compiler websites are not affiliated with Microsoft. オンライン コンパイラの Web サイトの多くは、個人のプロジェクトとして運営されており、これを読んでいる時点で閲覧できなくなっているサイトもあるかもしれませんが、検索すれば、その他の使用できるサイトが見つかるはずです。Many online compiler websites are run as personal projects, and some of these sites may not be available when you read this, but a search should find others you can use.

コンパイラ、リンカー、ライブラリの問題は、特定の方法で発生する傾向があります。Problems in the compiler, linker, and in the libraries, tend to show themselves in particular ways. 発生した問題の種類により、レポートに含める必要がある再現コードの種類が決まります。The kind of problem you encounter will determine what kind of repro you should include in your report. 適切な再現コードがないと、調査するものがありません。Without an appropriate repro, we have nothing to investigate. 発生する可能性のあるいくつかの問題の種類と、問題の種類ごとにレポートに使用する必要のある再現コードの種類の生成の手順を次に示します。Here are a few of the kinds of issues that you may see, and instructions for generating the kinds of repros you should use to report each kind of problems.

フロントエンド (パーサー) のクラッシュFrontend (parser) crash

フロントエンドのクラッシュは、コンパイラの解析フェーズの間に発生します。Frontend crashes occur during the parsing phase of the compiler. 通常、コンパイラは、致命的なエラー C1001 を出力し、エラーが発生したソース コード ファイルと行番号を参照します。ファイル msc1.cpp が言及されていることがよくありますが、この詳細は無視してかまいません。Typically, the compiler will emit Fatal Error C1001 and reference the source code file and line number on which the error occurred; it will often mention a file msc1.cpp, but you can ignore this detail.

この種のクラッシュの場合は、前処理済み再現コードを提供してください。For this kind of crash, please provide a Preprocessed Repro.

この種のクラッシュに対するコンパイラ出力の例を次に示します。Here's example compiler output for this kind of crash:

SandBoxHost.cpp
d:\o\dev\search\foundation\common\tools\sandbox\managed\managed.h(929):
        fatal error C1001: An internal error has occurred in the compiler.
(compiler file 'msc1.cpp', line 1369)
To work around this problem, try simplifying or changing the program near the
        locations listed above.
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
d:\o\dev\search\foundation\common\tools\sandbox\managed\managed.h(929):
        note: This diagnostic occurred in the compiler generated function
        'void Microsoft::Ceres::Common::Tools::Sandbox::SandBoxedProcess::Dispose(bool)'
Internal Compiler Error in d:\o\dev\otools\bin\x64\cl.exe.  You will be prompted
        to send an error report to Microsoft later.
INTERNAL COMPILER ERROR in 'd:\o\dev\otools\bin\x64\cl.exe'
    Please choose the Technical Support command on the Visual C++
    Help menu, or open the Technical Support help file for more information

バックエンド (コード生成) のクラッシュBackend (code generation) crash

バックエンドのクラッシュは、コンパイラのコード生成フェーズの間に発生します。Backend crashes occur during the code generation phase of the compiler. 通常、コンパイラは、致命的なエラー C1001 を出力し、問題に関連するソース コード ファイルと行番号を参照していない場合があります。ファイル compiler\utc\src\p2\main.c が言及されていることがよくありますが、この詳細は無視してかまいません。Typically, the compiler will emit Fatal Error C1001, and might not reference the source code file and line number associated with the problem; it will often mention the file compiler\utc\src\p2\main.c, but you can ignore this detail.

この種のクラッシュの場合は、/GL コマンド ライン引数を cl.exe に指定することによって有効したリンク時のコード生成 (LTCG) を使っている場合は、リンク再現コードを提供してください。For this kind of crash, please provide a Link repro if you are using Link-Time Code Generation (LTCG), enabled by the /GL command-line argument to cl.exe. 使っていない場合は、代わりに前処理済み再現コードを提供してください。If not, please provide a Preprocessed repro instead.

LTCG を使っていないバックエンド クラッシュに対するコンパイラ出力の例を次に示します。Here's example compiler output for a backend crash in which LTCG is not used. このようなコンパイラ出力の場合は、前処理済み再現コードを提供する必要があります。If your compiler output looks like this you should provide a Preprocessed Repro.

repro.cpp
\\officefile\public\tadg\vc14\comperror\repro.cpp(13) : fatal error C1001:
        An internal error has occurred in the compiler.
(compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c', line 230)
To work around this problem, try simplifying or changing the program near the
        locations listed above.
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
INTERNAL COMPILER ERROR in
        'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe'
    Please choose the Technical Support command on the Visual C++
    Help menu, or open the Technical Support help file for more information

内部コンパイラ エラーで始まる行において、cl.exe ではなく link.exe が言及されている場合は、LTCG が有効になっていたので、リンク再現手順を提供する必要があります。If the line that begins with INTERNAL COMPILER ERROR mentions link.exe, rather than cl.exe, LTCG was enabled and you should provide a Link Repro. コンパイラのエラー メッセージから LTCG が有効になっていたどうかはっきりわからない場合は、前の手順で /GL コマンド ライン引数に対するビルド ログからコピーしたコマンド ライン引数を調べることが必要な場合があります。If its not clear whether LTCG was enabled from the compiler error message, you may need to examine the command line arguments that you copied from your build log in a previous step for the /GL command-line argument.

リンカーのクラッシュLinker crash

リンカーのクラッシュは、コンパイラが実行された後のリンク フェーズ中に発生します。Linker crashes occur during the linking phase, after the compiler has run. 通常、リンカーはリンカー ツール エラー LNK1000 を出力します。Typically, the linker will emit Linker Tools Error LNK1000.

注意

出力が C1001 またはリンク時コード生成に関するものである場合は、「バックエンド (コード生成) のクラッシュ」で詳細をご覧ください。If the output mentions C1001 or involves Link-Time Code Generation, refer to Backend (code generation) crash instead for more information.

この種のクラッシュの場合は、リンク再現コードを提供してください。For this kind of crash, please provide a Link repro.

この種のクラッシュに対するコンパイラ出力の例を次に示します。Here's example compiler output for this kind of crash.

z:\foo.obj : error LNK1000: Internal error during IMAGE::Pass2

  Version 14.00.22816.0

  ExceptionCode            = C0000005
  ExceptionFlags           = 00000000
  ExceptionAddress         = 00007FF73C9ED0E6 (00007FF73C9E0000)
        "z:\tools\bin\x64\link.exe"
  NumberParameters         = 00000002
  ExceptionInformation[ 0] = 0000000000000000
  ExceptionInformation[ 1] = FFFFFFFFFFFFFFFF

CONTEXT:

  Rax    = 0000000000000400  R8     = 0000000000000000
  Rbx    = 000000655DF82580  R9     = 00007FF840D2E490
  Rcx    = 005C006B006F006F  R10    = 000000655F97E690
  Rdx    = 000000655F97E270  R11    = 0000000000000400
  Rsp    = 000000655F97E248  R12    = 0000000000000000
  Rbp    = 000000655F97EFB0  E13    = 0000000000000000
  Rsi    = 000000655DF82580  R14    = 000000655F97F390
  Rdi    = 0000000000000000  R15    = 0000000000000000
  Rip    = 00007FF73C9ED0E6  EFlags = 0000000000010206
  SegCs  = 0000000000000033  SegDs  = 000000000000002B
  SegSs  = 000000000000002B  SegEs  = 000000000000002B
  SegFs  = 0000000000000053  SegGs  = 000000000000002B
  Dr0    = 0000000000000000  Dr3    = 0000000000000000
  Dr1    = 0000000000000000  Dr6    = 0000000000000000
  Dr2    = 0000000000000000  Dr7    = 0000000000000000

インクリメンタル リンクが有効になっていて、初期リンクが成功、つまり後続のインクリメンタル リンクの基になっている最初のフル リンクの後でのみクラッシュが発生する場合は、初期リンクが完了した後で変更されたソース ファイルに対応するオブジェクト (.obj) ファイルとライブラリ (.lib) ファイルのコピーも提供してください。If incremental linking is enabled and the crash occurred only after a successful initial link, (that is, only after the first full linking on which subsequent incremental linking is based) please also provide a copy of the object (.obj) and library (.lib) files that correspond to source files that were modified after the initial link was completed.

不正なコードの生成Bad code generation

不正なコードが生成されることはまれですが、コンパイラが誤って不適切なコードを生成し、アプリケーションがコンパイル時にこの問題を検出せずに実行時にクラッシュすると発生します。Bad code generation is rare, but occurs when the compiler mistakenly generates incorrect code that will cause your application to crash at runtime rather than detecting this problem at compile-time. 発生している問題が不正なコードの生成の結果であると考えられる場合は、バックエンド (コード生成) のクラッシュと同じようにレポートを処理してください。If you believe the problem you are experiencing results in bad code generation, treat your report the same as a Backend (code generation) crash.

この種のクラッシュの場合は、/GL コマンド ライン引数を cl.exe に指定することによって有効したリンク時のコード生成 (LTCG) を使っている場合は、リンク再現コードを提供してください。For this kind of crash please provide a Link repro if you are using Link-Time Code Generation (LTCG), enabled by the /GL command-line argument to cl.exe. 使っていない場合は、前処理済み再現コードを提供してください。Please provide a Preprocessed repro if not.

再現コードの生成方法How to generate a repro

Microsoft での問題の原因究明には、適切な再現コードが非常に重要です。To help us track down the source of the problem, a good repro is vital. 特定の種類の再現コードについて、以下で説明する手順を実行する前に、問題を示すコードをできる限り凝縮してください。Before you do any of the steps outlined below for specific kinds of repros, try to condense the code that demonstrates the problem as much as possible. 依存関係、必須のヘッダー、ライブラリを除去または最小化し、可能な場合には使用したコンパイラ オプションとプリプロセッサ定義を制限します。Try to eliminate or minimize dependencies, required headers, and libraries, and limit the compiler options and preprocessor definitions used if possible.

異なる種類の問題の報告に使うさまざまな種類の再現コードを生成する手順を次に示します。Below are instructions for generating the various kinds of repros you'll use to report different kinds of problems.

前処理済み再現コードPreprocessed repros

前処理済みの再現コードは、問題を示す単一のソース ファイルで、元の再現コードのソース ファイルで /P コンパイラ オプションを使用することで、C プリプロセッサの出力から生成されます。A preprocessed repro is a single source file that demonstrates a problem, generated from the output of the C preprocessor by using the /P compiler option on the original repro source file. これにより、インクルードされているヘッダーがインライン化されて他のソース ファイルとヘッダー ファイルへの依存関係が削除され、ローカル環境に依存する可能性のあるマクロ、#ifdefs、その他のプリプロセッサ コマンドも解決されます。This inlines included headers to remove dependencies on additional source and header files, and also resolves macros, #ifdefs, and other preprocessor commands that could depend your local environment.

注意

問題の原因が標準ライブラリの実装におけるバグの可能性がある場合、通常、問題が解決済みかどうかを確認するために最新の作業中の実装に置き換えるので、前処理済みの再現コードはあまり役に立ちません。Preprocessed repros are not as useful for problems that might be the result of bugs in our standard library implementation, because we will often want to substitute our latest, in-progress implementation to see whether we've already fixed the problem. この場合は、再現コードを前処理しないでください。また、問題を 1 つのソース ファイルに減らすことができない場合は、コードを .zip ファイルなどにパッケージ化するか、IDE プロジェクトの再現コードの使用を検討してください。In this case, don't preprocess the repro, and if you can't reduce the problem to a single source file, package your code into a .zip file or similar, or consider using an IDE project repro. 詳細については、「その他の再現コード」を参照してください。For more information, see Other repros.

ソース コード ファイルを前処理するにはTo preprocess a source code file

  1. コマンド ラインの内容を報告するには」の説明に従って、再現コードをビルドするために使用したコマンド ライン引数をキャプチャします。Capture the command line arguments used to build your repro, as described in To report the contents of the command line.

  2. プロジェクトをビルドするために使用した Visual Studio のバージョンと構成アーキテクチャに一致する開発者コマンド プロンプトを開きます。Open the Developer Command Prompt that matches the Visual Studio version and configuration architecture used to build your project.

  3. 再現コード プロジェクトを含むディレクトリに移動します。Change to the directory that contains your repro project.

  4. 開発者コマンド プロンプト コンソール ウィンドウで、コマンド cl /P arguments filename.cpp を入力します。ここで、arguments は、上でキャプチャした引数のリストで、filename.cpp は再現コードのソース ファイルの名前です。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 your repro source file. このコマンドは、再現コードに使用したコマンド ラインをレプリケートしますが、プリプロセッサ パスの後、コンパイルを停止し、前処理済みのソース コードを filename.i に出力します。This command replicates the command line used for the repro, but stops the compilation after the preprocessor pass, and outputs the preprocessed source code to filename.i.

C++/CX ソース コード ファイルを前処理している場合、または C++ モジュール機能を使用している場合は、いくつか追加の手順が必要です。If you are preprocessing a C++/CX source code file, or you are using the C++ Modules feature, some additional steps are required. 詳細については、以下のセクションを参照してください。For more information, see the sections below.

ファイルを前処理済みのファイルを生成したら、そのファイルを使用して問題が引き続き再現されることを確認してください。After you have generated the preprocessed file, its a good idea to make sure that the problem still repros using the preprocessed file.

前処理済みファイルでエラーが再現することを確認するにはTo confirm that the error still repros with the preprocessed file

  1. 開発者コマンド プロンプト コンソール ウィンドウで、コマンド cl arguments /TP filename.i を入力して、cl.exe に前処理済みのファイルを C++ ソース ファイルとしてコンパイルするように指示します。ここで、arguments は上でキャプチャした引数のリストですが、/D 引数と /I 引数は、前処理済みのファイルに既に含まれているため削除されています。filename.i は、前処理済みファイルの名前です。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.

  2. 問題が再現することを確認します。Confirm that the problem is reproduced.

最後に、前処理済みの再現コード filename.i を自分のレポートに添付します。Finally, attach the preprocessed repro filename.i to your report.

前処理済みの C++/CX WinRT/UWP コードの再現Preprocessed C++/CX WinRT/UWP code repros

C++/CX を使用して実行可能ファイルをビルドしている場合は、前処理済みの再現コードを作成して検証するには、いくつか追加の手順が必要です。If you're using C++/CX to build your executable, there are some extra steps required to create and validate a preprocessed repro.

C++/CX ソース コードを前処理するにはTo preprocess C++/CX source code

  1. ソース コード ファイルを前処理するには」の手順に従って、前処理済みのソース ファイルを作成します。Create a preprocessed source file as described in To preprocess a source code file.

  2. 生成された filename.i ファイルを検索して #using ディレクティブを見つけます。Search the generated filename.i file for #using directives.

  3. すべての参照先ファイルの一覧を作成します。Make a list of all of the referenced files. Windows*.winmd ファイル、platform.winmd ファイル、および mscorlib.dll はすべて除外します。Leave out any Windows*.winmd files, platform.winmd files, and mscorlib.dll.

前処理済みのファイルでまだ問題が再現することを検証するための準備To prepare to validate that the preprocessed file still reproduces the problem,

  1. 前処理済みファイル用の新しいディレクトリを作成し、それを新しいディレクトリにコピーします。Create a new directory for the preprocessed file and copy it to the new directory.

  2. #using リストから .winmd ファイルを新しいディレクトリにコピーします。Copy the .winmd files from your #using list to the new directory.

  3. 新しいディレクトリに空の vccorlib.h ファイルを作成します。Create an empty vccorlib.h file in the new directory.

  4. 前処理済みファイルを編集して、mscorlib.dll の任意の #using ディレクティブを削除します。Edit the preprocessed file to remove any #using directives for mscorlib.dll.

  5. 前処理済みファイルを編集して、任意の絶対パスをコピーした .winmd ファイルのベア ファイル名だけに変更します。Edit the preprocessed file to change any absolute paths to just the bare filenames for the copied .winmd files.

前処理済みのファイルで、上記のように、まだ問題が再現することを確認します。Confirm that the preprocessed file still reproduces the problem, as above.

前処理済み C++ モジュールの再現Preprocessed C++ Modules repros

C++ コンパイラのモジュール機能を使用している場合は、前処理済みの再現を作成して検証するには、いくつか異なる手順が必要です。If you're using the Modules feature of the C++ compiler, there are some different steps required to create and validate a preprocessed repro.

モジュールを使用するソース コード ファイルを前処理するにはTo preprocess a source code file that uses a module

  1. コマンド ラインの内容を報告するには」の説明に従って、再現コードをビルドするために使用したコマンド ライン引数をキャプチャします。Capture the command line arguments used to build your repro, as described in To report the contents of the command line.

  2. プロジェクトをビルドするために使用した Visual Studio のバージョンと構成アーキテクチャに一致する開発者コマンド プロンプトを開きます。Open the Developer Command Prompt that matches the Visual Studio version and configuration architecture used to build your project.

  3. 再現コード プロジェクトを含むディレクトリに移動します。Change to the directory that contains your repro project.

  4. 開発者コマンド プロンプト コンソール ウィンドウで、コマンド cl /P arguments filename.cpp を入力します。ここで、arguments は、上でキャプチャした引数のリストで、filename.cpp はモジュールを使用するソース ファイルの名前です。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.

  5. モジュール インターフェイス (.ifc 出力) をビルドする再現プロジェクトを格納するディレクトリに変更します。Change to the directory that contains the repro project that built the module interface (the .ifc output).

  6. モジュール インターフェイスをビルドするために使用するコマンド ライン引数をキャプチャします。Capture the command line arguments used to build your module interface.

  7. 開発者コマンド プロンプト コンソール ウィンドウで、コマンド cl /P arguments modulename.ixx を入力します。ここで、arguments は、上でキャプチャした引数のリストで、modulename.ixx はモジュール インターフェイスを作成するファイルの名前です。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.

前処理済みのファイルを生成したら、そのファイルを使用して問題が引き続き再現されることを確認してください。After you have generated the preprocessed files, its a good idea to make sure the problem still repros using the preprocessed file.

前処理済みファイルでエラーが再現することを確認するにはTo confirm that the error still repros with the preprocessed file

  1. 開発者コンソール ウィンドウで、自分の再現コード プロジェクトが含まれているディレクトリに戻ります。In the developer console window, change back to the directory that contains your repro project.

  2. 上記のように、コマンド cl arguments /TP filename.i を入力して、前処理済みファイルを C++ ソース ファイルの場合と同様にコンパイルします。Enter the command cl arguments /TP filename.i as above, to compile the preprocessed file as if it were a C++ source file.

  3. 前処理済みのファイルでまだ問題が再現することを確認します。Confirm that the problem is still reproduced by the preprocessed file.

最後に、前処理済みの再現ファイル (filename.i と modulename.i) を .ifc 出力と共に、レポートに添付します。Finally, attach the preprocessed repro files (filename.i and modulename.i) along with the .ifc output to your report.

リンク再現コードは、link_repro 環境変数で指定されたリンカーによって生成されたディレクトリ内容です。A link repro is the linker-generated contents of a directory specified by the link_repro environment variable. これには、リンク時コード生成 (LTCG) が関係するバックエンド クラッシュやリンカー クラッシュなど、リンク時に発生する問題を全体として再現するビルド成果物が含まれます。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.

  1. コマンド ラインの内容を報告するには」の説明に従って、再現コードをビルドするために使用したコマンド ライン引数をキャプチャします。Capture the command line arguments used to build your repro, as described in To report the contents of the command line.

  2. プロジェクトをビルドするために使用した Visual Studio のバージョンと構成アーキテクチャに一致する開発者コマンド プロンプトを開きます。Open the Developer Command Prompt that matches the Visual Studio version and configuration architecture used to build your project.

  3. 開発者コマンド プロンプト コンソール ウィンドウで、自分の再現コード プロジェクトが含まれているディレクトリに移動します。In the developer command prompt console window, change to the directory that contains your repro project.

  4. mkdir linkrepro を入力して、リンク再現コードのディレクトリを作成します。Enter mkdir linkrepro to create a directory for the link repro.

  5. コマンド set link_repro=linkrepro を入力して、作成したディレクトリに link_repro 環境変数を設定します。Enter the command set link_repro=linkrepro to set the link_repro environment variable to the directory you just created. 複雑なプロジェクトでよくあるように、別のディレクトリからビルドを実行する場合は、代わりに link_repro を linkrepro ディレクトリへの完全なパスに設定します。If your build is run from a different directory, as is often the case for more complex projects, then set link_repro to the full path to your linkrepro directory instead.

  6. Visual Studio で再現コード プロジェクトをビルドするには、開発者コマンド プロンプト コンソール ウィンドウで、コマンド devenv を入力します。To build the repro project in Visual Studio, in the developer command prompt console window, enter the command devenv. これにより、link_repro 環境変数の値を Visual Studio で認識できるようになります。This ensures that the value of the link_repro environment variable is visible to Visual Studio. コマンド ラインでプロジェクトをビルドするには、上でキャプチャしたコマンド ライン引数を使用して再現コード ビルドを複製します。To build the project at the command line, use the command line arguments captured above to duplicate the repro build.

  7. 再現コード プロジェクトをビルドし、予想された問題が発生することを確認します。Build your repro project, and confirm that the expected problem has occurred.

  8. Visual Studio を閉じます (ビルドの実行に使用した場合)。Close Visual Studio if you used it to perform the build.

  9. 開発者コマンド プロンプト コンソール ウィンドウで、コマンド set link_repro= を入力して、link_repro 環境変数をクリアします。In the developer command prompt console window, enter the command set link_repro= to clear the link_repro environment variable.

最後に、linkrepro ディレクトリ全体を .zip ファイルなどに圧縮することで再現コードをパッケージ化し、レポートに添付します。Finally, package the repro by compressing the entire linkrepro directory into a .zip file or similar and attach it to your report.

その他の再現コードOther repros

1 つのソース ファイルまたは前処理済み再現コードに問題をまとめることができず、問題にリンク再現コードが必要ない場合は、IDE プロジェクトを調査できます。If you can't reduce the problem to a single source file or preprocessed repro, and the problem does not require a link repro, we can investigate an IDE project. この場合も、適切な再現コードの作成方法に関するすべてのガイダンス (コードは最小限の自己完結型にすること、問題が Microsoft の最新ツールで発生すること、および関連する場合は、問題が他のコンパイラでは確認されていないこと) が適用されます。All the guidance on how to create a good repro still applies; the code should be minimal and self-contained, the problem should occur in our most recent tools, and if relevant, the problem should not be seen in other compilers.

最小限の IDE プロジェクトとして再現コードを作成し、ディレクトリ構造全体を .zip ファイルなどに圧縮してパッケージ化した後、レポートに添付します。Create your repro as a minimal IDE project, then package it by compressing the entire directory structure into a .zip file or similar and attach it to your report.

レポートを送信する方法Ways to send your report

レポートを提出するのに最適な方法は、2 通りあります。There are a couple of good ways to get your report to us. Visual Studio に組み込まれている問題の報告ツール、または Visual Studio Developer Community (Visual Studio 開発者コミュニティ) ページを使用できます。You can use Visual Studio's built-in Report a Problem Tool, or the Visual Studio Developer Community pages. また、このページ下部の [製品のフィードバック] ボタンを選択すると、直接開発者コミュニティのページに進むことができます。You can also get directly to our Developer Community pages by choosing the Product feedback button at the bottom of this page. どちらを選択するかは、スクリーン ショットのキャプチャおよび開発者コミュニティ ページにポストするためのレポートを整理するために IDE に組み込まれているツールを使用するかどうか、または Web サイトを直接使用するかによって異なります。The choice depends on whether you want to use the tools built into the IDE for capturing screenshots and organizing your report for posting on the Developer Community pages, or if you'd prefer to use the website directly.

注意

レポートの送信方法に関係なく、Microsoft はお客様のプライバシーを尊重します。Regardless of how you submit your report, Microsoft respects your privacy. Microsoft は、すべてのデータのプライバシーに関する法律および規制を遵守することに努めています。Microsoft is committed to compliance with all data privacy laws and regulations. お客様から送信していただいたデータの扱いについて詳しくは、「Microsoft のプライバシーに関する声明」をご覧ください。For information about how we treat the data that you send us, see the Microsoft Privacy Statement.

問題の報告ツールを使うUse the Report a Problem tool

Visual Studio の問題の報告ツールを使うと、Visual Studio のユーザーはわずか数クリックでさまざまな問題を報告できます。The Report a Problem tool in Visual Studio is a way for Visual Studio users to report a variety of problems with just a few clicks. IDE を終了することなく、簡単なフォームを使って、発生している問題についての詳細な情報を指定し、レポートを送信できます。It provides a simple form that you can use to specify detailed information about the problem you've encountered and then submit your report without ever leaving the IDE.

問題の報告ツールを通して問題を報告する方法は、IDE からは簡単で便利です。Reporting your problem through the Report a Problem tool is easy and convenient from the IDE. このツールには、[サイド リンク バー] 検索ボックスの横にある [フィードバックの送信] アイコンを選択することにより、タイトルバーからアクセスすることができます。あるいは、メニュー バーから、[ヘルプ] > [フィードバックの送信] > [問題の報告] の順に選択してアクセスすることもできます。You can access it from the title bar by choosing the Send Feedback icon next to the Quick Launch search box, or you can find it on the menu bar in Help > Send Feedback > Report a Problem.

問題を報告することにした場合は、まず、開発者コミュニティを調べて同様の問題が発生していないかを確認します。When you choose to report a problem, first search the Developer Community for similar problems. 以前に同様の問題が報告されている場合は、そのトピックに賛成票を投じ、具体例な説明を含めたコメントを追加します。If your problem has been reported before, upvote the topic and add comments with additional specifics. 同様の問題が見つからない場合は、Visual Studio フィードバック ダイアログの下部にある [新しい問題を報告する] ボタンを選択して、問題を報告するための手順に従います。If you don't see a similar problem, choose the Report new problem button at the bottom of the Visual Studio Feedback dialog and follow the steps to report your problem.

Visual Studio 開発者コミュニティ ページを使用するUse the Visual Studio Developer Community pages

Visual Studio で問題を報告するためのもう 1 つの便利な方法として Visual Studio 開発者コミュニティ ページがあります。このページでは Visual Studio および C++ コンパイラ、ツール、ライブラリについて解決策を検索できます。The Visual Studio Developer Community pages are another convenient way to report problems and find solutions for Visual Studio and the C++ compiler, tools, and libraries. Visual StudioVisual Studio for Mac.NETC++Azure DevOps、および TFS の特定の開発者コミュニティ ページがあります。There are specific Developer Community pages for Visual Studio, Visual Studio for Mac, .NET, C++, Azure DevOps, and TFS. これらのタブの下にある各ページの上部付近には、検索ボックスがあり、自分が遭遇している問題と同様の内容を報告している投稿またはトピックを検索することができます。Beneath these tabs, near the top of each page, is a search box you can use to find posts or topics that report problems similar to yours. 遭遇している問題に関連する解決策またはその他の有用な情報が既に報告されていることがあります。You may find that a solution or other useful information related to your problem is already available. 他のユーザーが以前に同じ問題を報告している場合は、新たに問題レポートを作成するのではなく、そのトピックに対して賛成票を投じ、コメントを追加してください。If someone has reported the same problem before, please upvote and comment on that topic rather than create a new problem report. 新しい問題についてコメント、投票、または報告する場合は、Visual Studio アカウントへのサインイン、および開発者コミュニティ アプリがプロファイルにアクセスすることへの同意を求められる場合があります。To comment, vote, or report a new problem, 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.

C++ コンパイラ、リンカー、およびその他のツールやライブラリでの問題については、C++ に関するページを使用してください。For issues with the C++ compiler, linker, and other tools and libraries, use the C++ page. 問題を検索し、以前にその問題が報告されていない場合は、ページの上部の検索ボックスの横にある [問題の報告] ボタンを選択します。If you search for your problem, and it hasn't been reported before, choose the Report a problem button next to the search box at the top of the page. 再現コードとコマンド ライン、スクリーン ショット、関連するディスカッションへのリンク、および関連性があり有用だと思われるその他の情報を含めることができます。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.

ヒント

Visual Studio で発生する可能性がある、C++ ツールセットに関係しない他の種類の問題 (たとえば、UI の問題、IDE の機能の不具合、一般的なクラッシュなど) の場合は、IDE の問題の報告ツールを使用します。For other kinds of problems you might encounter in Visual Studio that are not related to the C++ toolset (For example, UI issues, broken IDE functionality, or general crashes), use the Report a Problem tool in the IDE. スクリーンショット機能や、発生した問題の原因である UI 操作を記録する機能があるので、このツールは最適です。This is the best 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 looked up on the Developer Community site. 詳細については、「Visual Studio で問題を報告する方法」を参照してください。For more information, see How to report a problem with Visual Studio.

レポートとプライバシーReports and privacy

既定では、レポート内の情報、およびコメントと応答はすべて公開されますBy default, all information in reports and any comments and replies are publicly visible. 通常これには、コミュニティ全体が問題、解決策、および他のユーザーが見つけた回避策を閲覧できるという利点があります。Normally, this is a benefit, because it allows the entire community to see the issues, solutions, and workarounds other users have found. しかし、プライバシーや知的財産権の理由から、データや ID が公開されることを心配されている場合は、いくつかオプションがあります。However, if you're concerned about making your data or identity public, for privacy or intellectual property reasons, you have options.

身元を公開することついて心配がある場合は、個人情報を公開しない新しい Microsoft アカウントを作成します。If you are concerned about revealing your identity, create a new Microsoft account that does not disclose any details about you. このアカウントを使用してレポートを作成します。Use this account to create your report.

公開される最初のレポートのタイトルや内容に、公開したくないことを含めないでください。Don't put anything you want to keep private in the title or content of the initial report, which is public. 代わりに、別のコメントで詳細を非公開で送信することができます。Instead, note that you will send details privately in a separate comment. レポートが適切な担当者に確実に送信されるようにするためには、問題レポートのトピックの一覧に cppcompiler を含めます。To make sure that your report is directed to the right people, include cppcompiler in the topic list of your problem report. 問題レポートが作成されると、返信と添付ファイルを閲覧できる人を指定することができるようになります。Once the problem report is created, it's now possible to specify who can see your replies and attachments.

個人情報の問題レポートを作成するにはTo create a problem report for private information

  1. 作成したレポートで、[コメントの追加] を選択して、問題の個人的な詳細を作成します。In the report you created, choose Add comment to create your private description of the problem.

  2. 返信エディターで、[送信] ボタンと [キャンセル] ボタンの下のドロップダウン コントロールを使用して、返信を閲覧できる人を指定します。In the reply editor, use the dropdown control below the Submit and Cancel buttons to specify the audience for your reply. 指定された人だけがこれらの非公開の返信と、それに含まれるイメージ、リンク、またはコードを閲覧できます。Only the people you specify can see these private replies and any images, links, or code you include in them. 閲覧できるのを Microsoft の従業員と自分に制限するには、[Viewable by moderators and the original poster](モデレーターと元の投稿者が閲覧可能) を選択します。Choose Viewable by moderators and the original poster to limit visibility to Microsoft employees and yourself.

  3. 説明と、問題の再現に必要なその他の情報、イメージ、および、添付ファイルを追加します。Add the description and any other information, images, and file attachments needed for your repro. [送信] ボタンを選択して、非公開でこの情報を送信します。Choose the Submit button to send this information privately.

    添付ファイルには 2 GB の制限と、最大で 10 個のファイルに制限されていることに注意してください。Note that there is a 2GB limit on attached files, and a maximum of 10 files. これを超えるアップロードについては、プライベート コメントでアップロード URL を要求してください。For any larger uploads, please request an upload URL in your private comment.

このコメントの下のすべての返信には、指定したのと同じ閲覧制限が適用されます。Any replies under this comment have the same restricted visibility you specified. これは、応答のドロップダウン コントロールに閲覧制限の状態が正しく表示されていない場合でも当てはまります。This is true even if the dropdown control on replies does not show the restricted visibility status correctly.

お客様のプライバシーと機密情報が公開されないようにするため、Microsoft とのすべてのやり取りは、この制限付きのコメントの下で返信するように注意してください。To maintain your privacy and keep your sensitive information out of public view, please take care to keep all interaction with Microsoft to replies under this restricted comment. 他のコメントに返信すると、機密情報が誤って公開される場合があります。Replies to other comments may cause you to accidentally disclose sensitive information.

C++ ドキュメントの問題を報告する方法How to report a C++ documentation issue

Microsoft では、GitHub の問題を使用して、報告されているドキュメントの問題を追跡しています。We use GitHub issues to track problems reported in our documentation. 現在 GitHub の問題は、コンテンツ ページから直接作成できます。これでは、ライターや製品チームとさまざまな方法で問題に関して直接やり取りできます。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. ページの一番下までスクロールし、[Sign in to give documentation feedback] (サインインしてドキュメントのフィードバックを送信する) を選択します。Scroll to the bottom of the page and select Sign in to give documentation feedback. GitHub アカウントをお持ちでない場合は作成する必要がありますが、作成すれば、すべてのドキュメントに関する問題やそれらの状態を参照できます。また、お客様が報告してくださった問題が変更された場合、通知を受け取ることができます。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. 詳細については、「A New Feedback System Is Coming to docs.microsoft.com」(docs.microsoft.com に導入される新しいフィードバック システム) を参照してください。For more information, see A New Feedback System Is Coming to docs.microsoft.com.

ドキュメントのフィードバック ボタンを使用して、ドキュメントの問題を GitHub で作成すると、Microsoft で問題がどこにあるか知ることができるよう、問題を作成したページに関するいくつかの情報が自動的に記入されます。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. Microsoft のドキュメントはオープン ソースなので、お客様で修正プログラムを作成してご提案いただくことも可能です。Our documentation is open source, so if you'd like to actually make a fix and propose it yourself, you can do that. 弊社のドキュメントにご協力いただく方法の詳細については、GitHub の「Contributing guide」 (寄稿ガイド) を参照してください。For more information about how you can contribute to our documentation, see our Contributing guide on GitHub.