こんにちは、アキゾラです。
今日は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)
Visual Studio 2019でARM64アプリをリモートデバッグするのに必要なもの
Visual Studioを動作させるマシン側
必要なものは、以下。
C++で、Visual Studio 2019を使用してARM64のデバッグを行う場合は、これだけで大丈夫だと思います。
Visual Studio 2019については、まぁこのページ見ている方は入っているかと思います。
無い方は、こちらから無償版手に入れることができます。
Windows SDKも、入れてない場合はこちらからダウンロードできます。
リモートデバッグされる側のARM64マシン側
必要なものは、以下。
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上で起動しました。
MyAppは中身のない適当すぎアプリですがw
Visual Studio 2019でちゃんとステップ実行などできます。
ブレークポイントなどもOK、ちょっとやってみた感じでは普通にデバッグできる感じです。
余談:x86アプリをARM64上でデバッグするには?
これは、Visual Studio 2019がARM64上にインストールできるので、そこでそのままデバッグできるっちゃできます(一応できました)。
ただ、結構遅い(重い)です。
x86アプリも、同じような感じでリモートデバッグできるかもしれません。未確認です。
まとめ
Visual Studio 2019でARM64アプリ(C++アプリ)のリモートデバッグをする手順メモ、でした。
ARM64アプリをVisual Studioで作る場合の参考になれば。
ではでは!
コメント