Visual Studio 2019でARM64アプリ(C++アプリ)のリモートデバッグをする手順メモ

当ブログではアフィリエイト広告を利用しています

プログラマ

こんにちは、アキゾラです。

今日はVisual Studio 2019でARM64ネイティブアプリのリモートデバッグをしてみます。

ARM64上でVisual Studio 2019は一応(一部?)動作するのですが、デバッグはリモートデバッグしかできないのかな?

アキゾラ
アキゾラ

(ノリでARM64上でVS使ってデバッグやったら失敗したょ)

リモートデバッグでちゃんとデバッグできたんで、その手順をメモっておきます。

アキゾラの環境

Visual Studio 2019が入っている側のx64マシン:Surface Book、Windows 10 Pro(x64)

リモートデバッグされる側のARM64マシン:Surface Pro X、Windows 10 Pro(ARM64)

参考元(Microsoft公式)
スポンサーリンク

Visual Studio 2019でARM64アプリをリモートデバッグするのに必要なもの

Visual Studioを動作させるマシン側

必要なものは、以下。

C++で、Visual Studio 2019を使用してARM64のデバッグを行う場合は、これだけで大丈夫だと思います。

Visual Studio 2019については、まぁこのページ見ている方は入っているかと思います。

無い方は、こちらから無償版手に入れることができます。

Windows SDKも、入れてない場合はこちらからダウンロードできます。

リモートデバッグされる側のARM64マシン側

必要なものは、以下。

  • Remote Tools for Visual Studio 2019 こちら
  • Visual Studio 2019 の Microsoft Visual C++ 再頒布可能パッケージ こちら

ARM64側のマシンには、Visual Studio 2019のリモートデバッグツールが必要になります。

アーキテクチャは、ARM64のものをダウンロードします。

ダウンロードしたら、インストールしておいてください。

Visual Studio 2019 の Microsoft Visual C++ 再頒布可能パッケージも、ARM64版のものを入れておきましょう。

これについては、デバッグ云々というより、Visual Studioで作ったアプリを動作させるために必要になったりするので、入れておきましょっていうノリです。

ARM64マシン上で、リモートデバッグできるようにする

ARM64上で、リモートデバッグできるようにしていきます。

インストールしたRemote Tools for Visual Studio 2019をスタートメニューから起動します。一応、管理者権限で起動したほうがいいかと。

初回起動時は、以下の画面が開きます。(英語版ですみません)

この状態で、「Configure remote debugging」で起動します。以下のような画面になればOKです。

ここに表示される、「マシン名:ポート番号」のところ(上の画像の黒塗りのところらへん)が、リモートデバッグで接続に使用する情報です。

これで、ARM64マシン側は準備が整いました。

とりあえず、このままにしておき、Visual Studio 2019が入っている側のマシンに向かいます。

ちなみに、デバッグが終わって終了するときは、Remote Debuggerツールを終了すればOKです。

今後、リモートデバッグするときは、ARM64マシン側で最初にこれを起動しておきます。

次回起動からは、最初のConfigurationの画面は出なくなります。

 

Visual Studio 2019でARM64版のビルド、リモートデバッグができるようにする

Visual Studio 2019でARM64版のビルドをできるようにする

まず、ARM64版のビルドができるようにします。

Visual Studio 2019で、自分がデバッグしたい(ARM64で動かしたい)アプリのソリューションを開き、Debugのところで、新しい構成を作ります。

Active solution platformのところで、<New…>を選んでください。

ARM64があるはずなので、それを選びます。コピー元はx64でいいはずです。

以下のように設定して、OKします。

これで、ARM64版のビルドはできるようになりました。Release版もできてますね。

一発ビルドしてコンパイル通ることを確認しましょう。

アキゾラ
アキゾラ

これで問題なければ楽ちんなんですが、問題出てくると、うん。頑張れって感じになりますね。

プラットフォームにARM64が出ない場合

ARM64用のビルドツールがインストール済みか確認しましょう。入ってなかったら入れてください。

スタートメニューからVisual Studio Installerを起動します。

以下のModifyをクリックします。

Desktop development with C++にチェックがあることを確認して(チェックがなかったら入れる)

Indivisual componentsタブで、Compilers, build tools, and runtimesの欄にある、ARM64用のビルドツールが入っていることを確認。なかったらチェックを入れてインストールします。

Visual Studio 2019でARM64版のリモートデバッグをできるようにする

次は、リモートデバッグの設定です。

今回、デバッグするアプリは「MyApp.exe」、ARM64マシンの「C:¥tool¥MyApp¥」上でリモートデバッグすることにします。

ディレクトリ名、ファイル名などこの設定になっています。この辺りは適宜ご自分の環境で読み替えてください。

以下から、ARM64版のリモートデバッグの設定を行います。

Debuggingのところで、以下のように設定します。(英語ですが、日本語版の方は何となく読み替えでいけるかと)

  • Remote Commad:ARM64マシン上で起動時に指示するコマンド。
  • Working Directory:作業ディレクトリ、通常アプリが動くディレクトリですね。Deployment Directory参照。
  • Remote Server Name:ここで、ARM64上のリモートデバッガで示された「マシン名:ポート番号」を指定します。
  • Deployment Directory:Visual Studio 2019からファイルコピー(デプロイ)するんですが、そのディレクトリです。通常作業ディレクトリと一緒かな。

こんな感じです。ランタイム ライブラリとかもデプロイしたい場合は、該当項目をYESにすればOKですかね。

あと、追加でファイルの配置もできるみたいなんで、それが必要な場合はそこも活用してください。

この画面はApplyしてOKで閉じます。

ここまでできたら、もう一度デバッガの構成の設定のところを開いて、「Deploy」にチェックを入れます。

はい、これで準備完了です。

 

Visual Studio 2019でARM64アプリのリモートデバッグをする

では、さっそくリモートデバッグしてみます。

Visual Studio 2019で、Remote Windows Debbgerでデバッグ起動してみます。

この時、認証ダイアログが出たら、接続先のARM64マシンにログオンできる情報で入ります。

すると、、、以下のようにARM64マシン側の指定したディレクトリに必要なファイルが配置されます。(ディレクトリが存在しなければ作成されます)

ARM64のSurface Pro X側にファイルがデプロイされる

そして、アプリもARM64上で起動しました。

ARM64上で起動したARM64アプリ

MyAppは中身のない適当すぎアプリですがw

Visual Studio 2019でちゃんとステップ実行などできます。

ブレークポイントなどもOK、ちょっとやってみた感じでは普通にデバッグできる感じです。

 

余談:x86アプリをARM64上でデバッグするには?

これは、Visual Studio 2019がARM64上にインストールできるので、そこでそのままデバッグできるっちゃできます(一応できました)。

ただ、結構遅い(重い)です。

x86アプリも、同じような感じでリモートデバッグできるかもしれません。未確認です。

 

まとめ

Visual Studio 2019でARM64アプリ(C++アプリ)のリモートデバッグをする手順メモ、でした。

ARM64アプリをVisual Studioで作る場合の参考になれば。

ではでは!

プログラマ
スポンサーリンク

twitterぽつぽつ好きなことつぶやいたりします。

ランキング参加中です。
にほんブログ村 株ブログ 女性投資家へ
にほんブログ村
にほんブログ村 その他スポーツブログ 筋トレ・ウェイトトレーニングへ
にほんブログ村
にほんブログ村 美容ブログへ
にほんブログ村
この記事を書いた人
アキゾラ

アラフォー独身女子。
プログラマとして働きながら、主にインデックス投資による資産運用実践中。
趣味は筋トレ、特に尻トレをメインに筋トレtipsを研究。筋トレインストラクター資格保有。あとブログで言及することはあんまりないけどゲーム好き。
情報処理系では情報処理安全確保支援士試験合格(登録なし)
資産運用のこと(主に状況報告)、筋トレや美容、たまにプログラマ関連のこと綴ってます。
筋トレなんかは特に論文ベース、その他も基本的には実体験ベースでブログ書くことが多いです。
気になったことや好きなことはとことん調べて勉強していくタイプですが、飽きるとそっぽ向きますw

アキゾラをフォローする
アキゾラをフォローする

コメント

タイトルとURLをコピーしました