У меня есть аудиоприложение WPF.
Иногда (и даже в отладчике) я вижу NullReferenceException
, который не содержит информации о трассировке стека.
Как можно начать отладку такой проблемы?
Немного фона:
Я P/Вызов функций в 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...
. Честно говоря, я совершенно не знаю, что здесь предлагается, поэтому любые подсказки приветствуются.
Как исключение может не иметь трассировки стека? Вы видели это раньше? Помощь!