2010-07-14 34 views
2

我正在编写托管代码,并且我使用非托管库(Qt)的托管绑定(qt4dotnet)。偶尔会出现一个来自Qt的AccessViolationException,但我不知道如何去调试它。我甚至没有比托管/非托管边界更远的堆栈跟踪(这意味着我不知道Qt的哪个部分碰撞了我)。如何调试来自本地代码的AccessViolationException

顺便说一句,我在VS调试器中运行我的应用程序。

如何调试异常?

回答

1

仅通过检查给调用本机代码的函数提供的参数。

+0

该死的,调用本机代码的函数是QApplication.exec(),它不需要参数,并且在那里可能会发生任何*。是否有一个技术原因,我为什么不回溯到非托管代码,还是只是VS中缺少的功能? – 2010-07-14 10:37:48

8

项目+属性,调试选项卡,勾选“启用非托管代码调试”。这仍然不会让事情变得简单,但至少你可以在炸弹爆炸时查看非托管堆栈帧。确保你已经获得了Qt代码的.pdb文件。