gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 14:47:07 25 4
gpt4 key购买 nike

当程序在调试器中运行时按 F12 将中断执行并打开调试器。这在 Windows XP 上可以正常工作(使用 D2007 和 XE2 进行测试),但在 Windows 7 和 8 上失败(也使用 D2007 和 XE2 进行测试;在三台计算机上进行了测试)。

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

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug] "UserDebuggerHotKey"=dword:00000000 "Debugger"="\"C:\Windows\system32\vsjitdebugger.exe\" -p %ld -e %ld"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\AutoExclusionList] "DWM.exe"=dword:00000001

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

奇怪的是,Delphi 似乎知道 F12 被按下。当我在 Windows 7 计算机上的调试器中运行程序并按 F12 时,Delphi 中的事件日志窗口显示

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/

关于delphi - F12 在 Windows 7/8 上的 Delphi 调试器中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13970455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com