Visual Studio Code C++ July 2021 Update：Disassembly View、マクロ展開、Windows ARM64 環境でのデバッグについて

皆さんごきげんよう。本記事は、2021 年 7 月 29 日（米国時間）ポストされた **[Visual Studio Code C++ July 2021 Update: Disassembly View, Macro Expansion and Windows ARM64 Debugging](https://devblogs.microsoft.com/cppblog/visual-studio-code-c-july-2021-update-disassembly-view-macro-expansion-and-windows-arm64-debugging/)** の意訳のようななにかとなります。内容については下記が原文で、正となります。

https://devblogs.microsoft.com/cppblog/visual-studio-code-c-july-2021-update-disassembly-view-macro-expansion-and-windows-arm64-debugging/

--------------------

2021 年 7 月にリリースされた [**Visual Studio Code の C++ 拡張機能**](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)には、デバッグ時の逆アセンブリ コード表示、インライン マクロの拡張、Windows ARM64 アーキテクチャのデバッグ サポートなどの新機能が追加されました。
またほかにもさまざまな機能強化やバグ修正が行われています。

https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools

**■ 機能強化の詳細について**
GitHubのリリースノートをご覧ください。

https://github.com/microsoft/vscode-cpptools/releases/tag/1.5.0

#Disassembly View
VS Code Insidersでは、GitHub における賛成数 No.1 （[#206](https://github.com/microsoft/vscode-cpptools/issues/206)）の **Disassembly View (逆アセンブル コードの表示) ** が VS Code Insiders で公開されました。Disassembly View では、コンパイラが作成した命令に対応するアセンブリ コードをデバッグすることができます。この機能は、8 月にリリースされる Visual Studio Code 1.59 で利用可能になる予定ですが、それまでの間は、VS Code Insiders をダウンロードしてお試しいただけます。

デバッグ中に Disassembly View を開くには、ソースコードを右クリックして `Open Disassembly View` を選択してください。

![dev](https://devblogs.microsoft.com/cppblog/wp-content/uploads/sites/9/2021/07/open-disassembly-view-1.png)

Disassembly View では、イエロー マーカーが現在の命令を表します。各命令についてのメモリ アドレス（左の列）、機械語命令が 16 進数（中の列）およびアセンブリ言語（右の列）として表示されます。各命令の間を移動することや、ステップオーバー（F10）やステップイン（F11）なども実行可能です。

![dev](https://devblogs.microsoft.com/cppblog/wp-content/uploads/sites/9/2021/07/disassembly-side-by-side-1.png)

Disassembly View でブレークポイントをセットするには、命令上にカーソルをポイントし、メモリ アドレスの左に表示される赤い円をクリックします。

![dev](https://devblogs.microsoft.com/cppblog/wp-content/uploads/sites/9/2021/07/disassembly-set-breakpoint-1.png)

再度、赤い円をクリックするか、Debug ペインの Braakpoint セクションのボックスをオフにすることで、ブレークポイントの設定が解除されます。

![dev](https://devblogs.microsoft.com/cppblog/wp-content/uploads/sites/9/2021/07/disassembly-check-breakpoint-1.png)

実際にやってみると、以下のような感じです。（クリックすると動きが見られます）

![dev](https://devblogs.microsoft.com/cppblog/wp-content/uploads/sites/9/2021/07/disassembly-view-sidey-by-side.gif)

#マクロの展開
C++ 拡張機能の最新リリースでは、マクロをインライン展開できるようになり（GitHub issue [#4183](https://github.com/microsoft/vscode-cpptools/issues/4183)）、コードを読むのも、理解するのも容易になりました。マクロをインライン展開するには、マクロをクリックし、電球的な形をしたアイコンを選択してから `Inline macro` をクリックします。

![dev](https://devblogs.microsoft.com/cppblog/wp-content/uploads/sites/9/2021/07/macro-expansion.gif)

#Windows ARM64 環境でのデバッグ
昨年、C++ 拡張機能を Windows ARM64 アーキテクチャ上で実行するためのサポート機能を発表しましたが、あらたねて Surface Pro X ユーザーは C++ IntelliSence、コード ナビゲーション、ビルド サポートを利用できるようになりました。2021 年 7 月の C++ 拡張機能のアップデートにより、Windows ARM64 環境でプロジェクトをデバッグできるようになりました。これで、VS Code でのエンドツーエンドの Surface Pro X での C++ 開発エクスペリエンスが完成します。

#フィードバックお待ちしています
Visual Studio Code の C++ 拡張機能を試してみて、ご意見をお聞かせください。何か問題が発生したとか、あるいはこうしたらいいんじゃないの？といったご提案など、[GitHub リポジトリの `Issues` セクション](https://github.com/Microsoft/vscode-cpptools/issues)でご報告ください。

https://github.com/Microsoft/vscode-cpptools/issues

**ダウンロードはこちらから**

https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools

また、Insiders Program に参加いただくと、リリース初期段階のビルドにアクセスすることができます。「File」→「Preferences」→「Settings」で、「Extensions」→「C/C++」→「C_Cpp.Update Channel」を「Insiders」に変更してください。次に、「Features」>「Extensions」で、「Extensions: Auto Update」を有効にしてみてください。

お問い合わせは、以下のブログのコメント欄またはメール（visualcpp@microsoft.com）で受け付けしております。また、Twitter の [@VisualC](https://twitter.com/visualc) でも Welcome です。

**■ ブログのコメント欄は下記ブログをスクロール**

https://devblogs.microsoft.com/cppblog/visual-studio-code-c-july-2021-update-disassembly-view-macro-expansion-and-windows-arm64-debugging/

---------------------

以上、[Julia](https://devblogs.microsoft.com/cppblog/author/jureidmicrosoft-com/) さんでした。

![dev](https://devblogs.microsoft.com/cppblog/wp-content/uploads/sites/9/2020/05/jureid_headshot-150x150.jpg)

それではみなさんごきげんよう。