2011-06-23 3 views
0

.NETカスタムコンポーネント(ソースがなく、難読化されている)からスローされた微妙なバグをデバッグしています。コンポーネントは、OnPaint()メソッドでNullReferenceExceptionをスローします。このメソッドは、自分のコードを含むサブスクライバを呼び出します。私は問題が私のコードにあることを100%確信しています。問題は、ビジュアルスタジオデバッガが例外がスローされた時点で停止しないことです(デバッグ/例外ダイアログでNullReferenceExceptionを有効にする必要があります)。Visual Studio 2010でNullRefenceExceptionをキャッチする方法

私はVisual Studioでこのような問題が発生したのは初めてです。問題のあるコードを特定するためのアイデアはどうぞ。

ケマル

答えて

0

可能性の高い問題は、あなたのコードは、しかし、それはおそらく、いくつかの点でnullを返して、NullReferenceExceptionを投げていないです。関数の最後に、Debug.Assert(retVal != null, "Returned null in function")などnullを返さないガード条件を追加することができます。

コードがNullReferenceExceptionであることを確認している場合は、未処理の例外ではなくスローされた例外が有効になっていることを確認してください。

+0

はい、私のコードは、ある時点でコンポーネントの期待値と矛盾する値を返し、null戻り値の一部が合法である可能性があります。 バイナリにブレークポイントを入れる方法はありますか? –

+0

@Kemal Erdogan:はい。しかし、それはILコマンドまたはネイティブコマンドのいずれかを壊すことになります。 – Guvante

関連する問題