通告!vs 在64位系统上一个小bug

wanghui0380 2012-12-12 03:08:52
今天偶然发现,在64位操作系统上winform的Form_load写入
throw new Exception("xx");
并不会弹出异常,form本身能够正常运行,但是后续代码不再执行

查询了一下相关说明,发现是64位系统的固有bug,原本和vs无关。只是这里通告一下,各位同学在调试的时候要注意了。(虽然vs并没有中断运行,但是在输出窗口还是能看到异常信息,所以同学们在调试的时候的注意看输出窗口)

官方说明:
This is a known issue on 64-bit OS platform. The reason is that the 64bit OS core does not allow user mode exception through kernal mode stacks. The exception is swallowed by OS sliently. That happens in FormLoad handler, because it is called in an OS callback. 32bits OS doesn't do this, so it doesn't repro there.

The OS team is investigating related issues. In the mean time, you do have to work around this issue. Turning on "Stop on first chance exception" will make the debugger to stop in this scenario. But it does make the debugger to stop very often, so you might want to do this only when you find a problem.


ps:这个bug好像已经出来很久了,只是很少有人提过,估计大家写的代码都比较标准,基本不会在Form_load就异常:)
...全文
710 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangxue_bjmps 2012-12-13
  • 打赏
  • 举报
回复
还没碰到,试试。
XinYaping 2012-12-12
  • 打赏
  • 举报
回复
Good sharing!
ohkuy 2012-12-12
  • 打赏
  • 举报
回复
我还没有在加载的时候异常
yuekunge 2012-12-12
  • 打赏
  • 举报
回复
谢谢提醒····
crystal_lz 2012-12-12
  • 打赏
  • 举报
回复
再次突然性的想起 貌似这种情况不止一次遇到了 以前 在load里面写了一堆代码 可是一出来 去只执行了前面部分 调试的时候一看 原来执行到 某一步的时候 出现了异常直接就跳出 load 了、、、如果在里面 放一个try catch 就能把异常信息搞出来 反正编译器不会停下来、、、
jiangsheng 2012-12-12
  • 打赏
  • 举报
回复
这个是被用户强烈要求加入Windows 7的Program Compatibility Assistant的功能,用来兼容旧程序的,windows 7发布的时候有演示过。新的支持Windows 7的程序可以用supportedOS声明或者SetProcessUserModeExceptionPolicy函数把这个功能关掉。
crystal_lz 2012-12-12
  • 打赏
  • 举报
回复
果断 刚才就试了一下 果然Form正常弹出 也没有包啥错 可后面的执行起来就问题了 - -!、、就在刚才不就 我也遇到一蛋疼问题 不过这个不能算是vs的错了 在写控件的时候 代码里面有错误 控件内部使用的数组 果断越界了 控件一加到界面上去 果断编译器崩溃关了 然后再打开一加载的时候继续崩溃、、在那里蛋疼的搞了半天、 说道这个 突然想起 上次发现窗体 你在构造器里面写 this.Enable = false 和 load里面写 和 放一个按钮点击执行事件里面写 呈现出来的禁用的效果也不同 构造器里面的 出来 窗体还可以拖动点击窗体也不发出系统警告声音 - -! 不知道是因为放到不同地方执行的先后顺序的结果所致还是啥的
starfd 2012-12-12
  • 打赏
  • 举报
回复
不开发winform的飘过
51Crack 2012-12-12
  • 打赏
  • 举报
回复
放在Form1中(启动窗体)也会报错
51Crack 2012-12-12
  • 打赏
  • 举报
回复
win8(64)+vs2012 Form1调用Form2,调试时直接退出,正常运行时出错,没出现跳过的情况
内容概要:SSD2828QN4是一款MIPI主桥接芯片,用于连接应用处理器与传统并行LCD接口及支持MIPI从属接口的LCD驱动器。该芯片支持最高每通道1Gbps的串行链路速度,最多可配置4个数据通道,显著减少了信号数量。它支持多种接口模式,包括RGB+SPI组合接口,适用于驱动智能或非智能显示面板,并能通过命令模式和视频模式传输数据。芯片内置时钟和复位模块、外部接口、协议控制单元(PCU)、包处理单元(PPU)、错误校正码/循环冗余校验(ECC/CRC)模块、长包和命令缓冲区、D-PHY控制器、模拟收发器以及内部锁相环(PLL),确保了高效的数据传输和系统稳定性。此外,文档详细描述了芯片的引脚分配、寄存器设置、操作模式、电源序列、时序特性等关键参数,为开发者提供了全面的技术指导。 适合人群:具备一定硬件设计基础,从事嵌入式系统开发、显示技术研究的研发人员。 使用场景及目标:①实现应用处理器与MIPI兼容显示屏之间的高速数据传输;②优化显示系统的功耗表现,减少电磁干扰(EMI);③通过灵活配置不同接口模式来适应各种显示设备的需求。 阅读建议:此文档面向具有一定电子工程背景的专业人士,建议读者结合实际项目需求深入理解各章节内容,特别是关于寄存器配置、时序要求等方面的具体说明。对于初次接触此类技术的开发者而言,建议先熟悉基本概念再逐步掌握高级功能的应用方法。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧