故意破坏我的Windows应用程序的最佳方法是什么?
我已经在我的Qt应用程序的 Windows版本中添加了一个迷你核心转储功能(通过__try / __ except和MiniDumpWriteDump()),这样如果/当我的应用程序崩溃时,.dmp文件将被写入磁盘让我以后查看和调试. 这非常有效,但是对于测试,我希望有一个已知可靠的方法来使我的程序崩溃.例如,GUI中可能存在“立即崩溃”按钮,当用户单击它时,它将导致应用程序故意崩溃. 当然,一种方法是这样的: int * badPointer = NULL; *badPointer = 666; 这对我有用,但我不喜欢这种方法,因为它依赖于未定义的行为 – 特别是,C标准不要求上面的代码导致崩溃,所以它是可能的(从语言 – 律师的角度来看) )当上面的代码执行时,编译器的某些未来版本不会崩溃. 作为一种更“官方”的方法,我试过这个: abort(); …它会终止程序,但它不会导致Windows结构化异常触发MiniCrashDump处理程序,因此不会写入.dmp文件. 我的问题是,是否有一个“官方正确的方式”来破坏我的计划?我看到Windows API有一个我可以调用的RaiseException()函数,但我不确定它应该是什么正确的参数.这是要走的路,还是有一些更具体的电话,我会更好用? 如果您知道自己在Windows上运行,则取消引用空指针以引发访问冲突是完全正常的 – Windows提供比C语言更强的保证. C表示取消引用空指针是Undefined Behavior,但Windows将其定义为访问冲突(只要C被强制转换就完全可以接受,因为访问冲突是未定义行为的一种可能结果).从Managing Virtual Memory开始:
内存的第一页始终映射为PAGE_NOACCESS,因此如果您尝试读取或写入空指针(或空指针的/ -64 KB内的任何指针),您将始终引发访问冲突异常. (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何在Windows 7上安装PHP 7的MongoDB驱动程序?
- Windows – LogonUser – 来自系统服务的CreateProcessAsUs
- batch-file – 用于在Windows 7中更改屏幕分辨率的批处理文
- windows-8 – 在Windows 8上禁用了DirectX控制面板上的某些
- windows 用浏览器打开应用程序的方法
- Windows服务用python编写,不检测关机事件并正常停止
- 如何在Windows上制作相同高度的SWT按钮,文本和标签?
- 无法使用for循环从Windows批处理脚本编写html
- windows远程桌面连接ubuntu 16.04
- win10下安装PyQt4
- window python2.7 ImportError: No module named
- xaml – Wrap TextBlock的最大行数
- Windows Containers 大冒险: 优化计划(Dockerfil
- windows+tomcat+https(免费证书)
- 设计 – 在XP的上下文中有什么比喻?
- 如何在东芝笔记本电脑和Windows 7上使用python进
- 维护Windows和Linux的本地存储库
- 如何减少Windows Azure网站上托管的Orchard CMS站
- xaml – Windows 8 App,更改BackButtonStyle的颜
- 应用程序无法正常启动0xc000007b解决方法