2010-01-12 65 views
1

我试图在使用Visual Studio 2005的Windows Mobile 6设备上调试.NET Compact框架C#应用程序。如果执行达到我以前设置的断点,则10次中有9次崩溃。如果它不是第一次崩溃,即使通过应用程序的多次执行,该断点也将继续正常工作。如何在Windows Mobile设备上调试时停止Visual C#2005崩溃?

+1

有什么异常会崩溃?你能给我们多一点信息吗? – 2010-01-12 12:55:01

+0

同意tomlog – Krunal 2010-01-12 12:56:47

+0

如果不设置断点,它会崩溃吗?如果你在main中设置断点呢? – user227997 2010-01-12 15:04:14

回答

0

对于Visual Studio 2005重新安装Service Pack 1后,此问题似乎已得到解决。

3

我会在地址 0x00000000015fab774异常代码0000005 (STATUS_ACCESS_VIOLATION)。

这是一个本机异常。在托管应用程序中,这通常是由您的某个P/Invokes或WindowsCE自定义版本中的缺陷导致的。

我在使用某些打印机代码时遇到了同样的问题。本地异常仅在连接的调试期间发生,然后不是所有的时间,而是有时在所有的时间。 :d。它从未在生产中发生过。
实际的问题是C++的一个坏点,它得到了一个字符串(以及一个指向字符串的指针),然后吞噬了接下来的1024个字节。问题是,有时它不应该访问这些字节中的一部分!我想这是在调试过程中发生的,因为使用了更多的内存或者一些好奇的内存对齐方案。
我们通过将字符串的长度传递给C++调用来解决该问题,因此它不必盲目地采用下一个1024。

值得注意的是,还有更多的可能性导致0xC0000005。一些非常有帮助的人添加了一些这些可能性here

如果您无权访问任何较低级别的代码,我建议将此问题与提供您的操作系统映像的人员(通常是制造商)以及您使用的任何低级别组件的提供者一起考虑。这个问题很难解决,所以我不希望自己修复,特别是如果制造商是Symbol,Intermec或Datalogic(前者有狗屎支持,后者只是解雇了大部分开发者)。

+0

不幸的是,它是Visual Studio本身崩溃并生成访问冲突,应用程序本身没有问题,直到Visual Studio由于错误而重新启动 – Kentaree 2010-01-14 09:51:15