2016-10-06 5 views
0

私はC#でVS 2015を使用しています。多くのイベントを使用してアプリケーションをデバッグしようとしています。すべてのイベントを送信するたくさんのボタンがあります。問題は、いくつかのイベントがDLLによって送信される例です。多くのイベントでデバッグするアプリケーション

void Setalarm(int ID) 
{ 
    functionInDLL.sendAlarm(ID); //raise an alarmEvent (don't know the exact name) 
} 

私はfunctionInDLLでコードを見ることができないので、私が送信されるイベントか分かりません。

イベントが発生したときに中断することはできますか?

この場合、alarmEventが呼び出されたときに呼び出されるすべての関数でブレークします。

答えて

1

おそらく、dll参照を削除します。エラーのある箇所にブレークポイントを追加します。 dll参照を元に戻します。

これは時間がかかりますが、おそらく最も簡単な方法です。

+0

エラーが発生しない瞬間、私はアプリケーションの仕組みを理解しようとしています。このアプリケーションはオブジェクトを使用します。このオブジェクトは、さまざまな機能によってイベントを使用して処理されます。エラーを修正する前にアプリケーションの仕組みを理解したい。 –

+0

私は理解します。私が言っていたのはこれです。外部dllへの参照を削除します。あなたがビルドするといくつかのエラーが発生し、どこでもDLLが使用されました。すべてのエラーにブレークポイントを設定します。その後、dllを追加します。エラーは消え、外部dllが使用されているところで実行が破損します。 – Lidaranis

1

sendAlarmメソッドでブレークポイントを設定し、F11キーを押します。これは、ソースを持たないため、Visual Studioが最初のコード(つまりイベントハンドラ)にステップインしますので、メソッドにステップインしようとします。 言うまでもなく、これは、イベントハンドラが接続されているイベントに対してのみ機能します。

発生したすべてのイベントを検出する必要がある場合は、イベントごとにハンドラを追加する必要があります。ハンドラのないイベントは発生しないため、他の方法はありません。

+0

実際に私はソースを持っていない、指示にF11を押すと、F10のようです。アプリケーション内のすべてのEventHandlerを含むオブジェクトEventHandlerにブレークを入れる方法はありませんか?または、イベントをデバッグするツールがVSにはありませんか?このアプリケーションは非常に多くのイベントを使用していますが、1つずつブレークを追加する必要がある場合は、いくつか見逃してしまいます。 –

+0

私の知る限り、すべてのイベントを一度に処理する方法はありません。オブジェクトが欠落しないようにするには、オブジェクトのすべてのイベントを処理するためにリフレクションを使用してコードを書くことができます。 – Pidon

関連する問題