10

WPFオーディオアプリケーションがあります。

ときどき(そしてデバッガーでも)、NullReferenceExceptionスタックトレース情報を持たないが表示されます。

どうすればそのような問題のデバッグを開始できますか?

いくつかの背景:

私はP/Invoking関数で、呼び出し時にコールバックWinMM.dllを登録する必要がありますwaveOutOpen

    [DllImport("winmm.dll")]
    public static extern MmResult waveOutOpen(out IntPtr phwo, IntPtr uDeviceID, WaveFmt pwfx, WaveCallbk dwCallback, IntPtr dwInstance, int fdwOpen);

これは、特に私が呼び出した時点で安定するのが難しくwaveOutClose、すぐにwaveOutOpen再度呼び出す(通常は出力形式を変更するため)ことがわかっています。

この問題は、上記で説明した通話に関連している可能性があります(ただし、知識がほとんどない場合は、完全に対象外になる可能性があります)。

問題を再現することは現在とらえどころのないことを証明していますが、この問題をかなり一貫して見ているユーザーにビルドを提供することはできます。問題の原因となっている操作を、デバッガーで問題を再現することがより確実になるまでスピードアップしようとするかもしれません。

デバッガーに関しては、(を含むEnable unmanaged code debugging)設定や設定をいじくり回していませんDebug -> Exceptions...。正直なところ、私はここで何が提供されているかについてかなり無知なので、どんなヒントも歓迎します。

例外にスタックトレースがないのはどうしてですか?これを見たことがありますか?ヘルプ!

4

1 に答える 1

11

デバッガーでできる最も便利なことは、最初の例外で中断するように指示することです ([デバッグ] -> [例外])。

VS 例外ウィンドウ

これにより、 aNullReferenceExceptionがスローされた正確なポイントでデバッガーが中断されます。これは、デバッグ中に期待できる最高のものです。

于 2011-04-11T11:46:38.727 に答える