SOBAのソースコードのほとんどの部分はJavaで書かれていますが、カメラや音声の部分はVisual C++などのネイティブで書かれたdllになっています。Visual C++で書かれたdllをVisual Studioのインストールされていないパソコンでデバッグしてみました。
①
まず、該当のVisual C++のソースをVisual C++のdebugでコンパイルします。
dllとpdbの拡張子のついたファイルをVisual Studioのインストールされていないパソコン側にコピーしてデバッグしたいプログラムがそのdllを使用できるようにしておきます。
②
Visual Studioがインストールされていないパソコンでデバッグしたいプログラムを動作させます。
私の場合、javaのプログラムがC++のdllを呼び出しているのでjavaのプログラムを実行させます。
③
その後、msvcmon.exeを動作させて待機する必要があります。msvcmon.exeはVisual Studioがインストールされているパソコンからフォルダごとコピーすればそのまま動きます。
以下のようにコマンドラインから入力して待機させます。
$ ./msvcmon.exe -anyuser -tcpip
Microsoft (R) Visual C++ Remote Debug Monitor(x86) Version 7.10.6030
Copyright (C) Microsoft Corporation 1987-2002. All rights reserved.
Maximum number of concurrent sessions:20
**TCP-IP Mode**
WARNING: TCP-IP mode is not a secure way to debug your application. For better
security use msvcmon in pipe mode or the default port in the processes
dialog to debug your application.
To use the default port you will need to install the full set of remote
debugging components. For further information see 'Remote Debug Setup' in Help.
*Msvcmon will timeout and exit in 15 minutes*
Waiting for Connections - everyone is allowed access
④
さて、Visual Studioがインストールされているパソコン側では、該当のプロジェクトを開いて、適当なソースでブレイクポイントを設定しておきます。
その後、Tools ---> Debug Processを開きます。
TransportにTCP/IPを選んで
Nameにmsvcmon.exeを動作させているパソコンのIPアドレスを入力します。
すると、一覧に動作中のプログラムが表示されます。
私の場合、javaのプログラムを起動させているのでjavaを選択します。
すると、javaから呼び出されているC++のコードのブレイクポイントで止まりました。