我有一个 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...
设置。老实说,我对这里提供的东西一无所知,所以欢迎任何提示。
异常怎么可能没有堆栈跟踪?你以前见过这个吗?帮助!