- - PR -
[C#] デバッグ方法についての質問です。
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-30 11:04
いつもお世話になっております。
下らない質問かもしれませんが わかるかたいらっしゃいましたらご教授願います。 同一ソリューション内にEXEプロジェクトが2個あり、 当然、コンパイルすれば2個のEXEができます。 片方のEXE(A)から、InvokeMemberメソッドを利用して、 インスタンスを作成し、もう片方のEXE(B)を起動します。 これはOKなのですが、(B)をデバッグしたい場合は どうすればできるのでしょうか? すみません、初心者なのでアドバイスを頂けると助かります。 いろいろGoogleでも検索しましたがよくわかりませんでした。 | ||||
|
投稿日時: 2005-08-30 11:34
デバッグ-プロセス-アタッチで
EXE(B)をアタッチしてもできないでしょうか? | ||||
|
投稿日時: 2005-08-30 11:37
burton999様
さっそくご回答ありがとうございました! やってみます。 また、結果をご報告致します。 質問に言葉が足りなかったかもしれません。 EXE(B)のソースコード内にブレイクポイントをはって 止めることも可能でしょうか? すみません>< 何度も。。。 [ メッセージ編集済み 編集者: Yuki 編集日時 2005-08-30 11:39 ] | ||||
|
投稿日時: 2005-08-30 11:43
ちょっと疑問なんですが、これはEXE(B)をプロセスとして起動しているのではないということでしょうか? EXE(B)の何をインスタンス化して何を実行しているんでしょうか? InvokeMemberとかリフレクションを使っているのは、VS.NET上ではEXEを参照設定できないための苦肉の策といったところでしょうか? EXEとして起動する必要がないのであれば普通DLLにすると思うんですが、まあ何らかの理由でEXEにしないといけないんですよね、きっと… プロセスとして起動していない状態であれば、普通にVS.NET上でそのままデバッグ続行できるような気がするんですが、詳細が分からないのでなんともいえないです。 | ||||
|
投稿日時: 2005-08-30 11:54
なちゃ様
すみません。いろいろと。 質問と状況も何だかちんぷんかんぷんですか^^; >プロセスとして起動していない状態であれば、普通にVS.NET上でそのままデバッグ続行>できるような気がするんですが、詳細が分からないのでなんともいえないです。 ▲私の認識不足ならすみません。 EXE(A)が各プログラムを起動するメニューになっています。 EXE(B)はメニューから起動されるプログラムです。 今、同一ソリューション内にEXE(A)とEXE(B)のプロジェクトがありまして、 テスト中は、EXE(A)をスタートアッププロジェクトにしています。 このとき、当然EXE(B)は起動していないです(?) EXE(A)のEXE(B)起動ボタンを押して、EXE(B)を起動するときに、 EXE(A)からさまざまな情報をEXE(B)のプロパティにセットして、 起動します(したいのです)。 アセンブリクラスのメソッドでEXE(B)のパスを指定しているので、 コンパイルされたEXE(B)が当然実行されていると思いますが、 こうなると、EXE(B)のソース内でどう動いているのかがわからないのです。 自分でも正しいことを言っているのかわからなくなりました。 たぶん、こういう風に実行されているのだと思います。 | ||||
|
投稿日時: 2005-08-30 13:26
パスってのはネームスペースのことですかね。 別プロセスとして起動しているのではないようですから、普通にアセンブリの参照(プロジェクト参照)したほうが良いと思います。 参考: http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=23780&forum=7 | ||||
|
投稿日時: 2005-08-30 13:34
私なら、EXE2 を別ソリューションにして、単体でテストしちゃうかなぁ。
で、これまた別のソリューションで統合して分けてしまうかなぁ。 いや、そもそも DLL にしちゃうかもしれません。 EXE1 から起動されるだけなら、EXE2 って単体レベルのテストしかしませんね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-08-30 14:08
とりあえず、ここをどうやっているのか具体的に教えてください。 具体的にというのは、どのようなクラスやメソッドを使用して、 どのようなコードでEXE(B)を起動しているかを「正確に」、です。 アセンブリクラス(Assembly?)にはInvokeMemberはないはずですし… |