加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

F12在Windows 7/8上的Delphi调试器中不起作用

发布时间:2020-12-13 22:42:52 所属栏目:Windows 来源:网络整理
导读:在程序在调试器中运行时按F12应该会中断执行并打开调试器.这在 Windows XP上正常工作(使用D2007和XE2测试)但在Windows 7和8上失败(也在D2007和XE2上测试;在三台计算机上测试). 注册表已正确设置(Windows 7): [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindow
在程序在调试器中运行时按F12应该会中断执行并打开调试器.这在 Windows XP上正常工作(使用D2007和XE2测试)但在Windows 7和8上失败(也在D2007和XE2上测试;在三台计算机上测试).

注册表已正确设置(Windows 7):

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionAeDebug]
“UserDebuggerHotKey”=dword:00000000
“Debugger”=””C:Windowssystem32vsjitdebugger.exe” -p %ld -e %ld”

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionAeDebugAutoExclusionList]
“DWM.exe”=dword:00000001

XP安装还设置“Auto”=“1”并省略AutoExclusionList,但在Windows 7计算机上复制这些更改不会完成任何操作.

奇怪的是德尔福似乎意识到F12被压了.当我在Windows 7机器上的调试器中运行程序并按F12时,Delphi中的Event Log窗口显示

Thread Start: Thread ID: 4080. Process Project73.exe (7108)

Thread Exit: Thread ID: 4080. Process Project73.exe (7108)

只是没有触发断点并且应用程序继续运行.

有谁知道如何在Windows 7/8中恢复此功能?

调试器发现Windows启动了一个新线程,但它不知道该线程是什么.在XP中,此线程进入int 3断点(DebugBreak()),但在Vista和Windows 7下,即使设置了注册表项,断点也不会再被命中.

存在一个Delphi IDE插件,它捕获线程并调用DebugBreak()WinAPI函数.
http://andy.jgknet.de/blog/ide-tools/unsupported-tools/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读