gpt4 book ai didi

c# - NullReferenceException,没有堆栈跟踪...从哪里开始?

转载 作者:可可西里 更新时间:2023-11-01 09:08:24 28 4
gpt4 key购买 nike

我有一个 WPF 音频应用程序。

偶尔(甚至在调试器中)我会看到一个 NullReferenceException,它不携带任何堆栈跟踪信息。

如何开始调试这样的问题?

一些背景:

我正在 P/调用 WinMM.dll 中的函数,其中涉及注册一个 callback调用 waveOutOpen

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

事实证明,这很难稳定下来,尤其是在我调用 waveOutClose 并立即再次调用 waveOutOpen 的时候(通常是为了更改输出格式)。

我怀疑问题可能与我在上面描述的调用有关(尽管知识太少,我可能完全偏离目标)。

虽然我可以向相当一致地看到此问题的用户提供构建,但目前证明该问题难以重现。我可能会尝试加快导致问题的操作,以确保在调试器中重现问题。

关于调试器,我没有修改任何设置(包括启用非托管代码调试)或任何Debug -> Exceptions... 设置。老实说,我对这里提供的内容一无所知,所以欢迎任何提示。

异常怎么可能没有堆栈跟踪?你以前见过这个吗?帮助!

最佳答案

您可以在调试器中做的最有用的事情是指示它在第一次出现异常时中断(调试 -> 异常):

VS Exceptions window

这将导致在抛出 NullReferenceException 的确切点中断调试器,这几乎是您在调试时所能期望的最好结果。

关于c# - NullReferenceException,没有堆栈跟踪...从哪里开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620678/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com