« Xen | メイン | Too many open files その1 »

Visual Studio リモートデバッグ

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++のコードのブレイクポイントで止まりました。



トラックバック

このエントリーのトラックバックURL:
http://soba-project.info/cgi/mt/mt-tb.cgi/125

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2009年11月10日 23:10に投稿されたエントリーのページです。

ひとつ前の投稿は「Xen」です。

次の投稿は「Too many open files その1」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type