在 Delphi 2007 中丢失了一些调试功能

Posted

技术标签:

【中文标题】在 Delphi 2007 中丢失了一些调试功能【英文标题】:Lost some debug functionality in Delphi 2007 【发布时间】:2014-11-23 21:58:05 【问题描述】:

最近我在 Delphi 2007 中失去了一些调试功能。

具体来说,监视列表窗口完全禁用,除了一个 Watch List 的一些弹出菜单项。唯一的菜单项 启用是 添加组... 显示列标题 留在上面 可停靠

ide中的情况和程序运行或不运行的情况

断点的工作方式与断点处的工具提示表达式一样。

在工具中 |选项、代码完成、错误洞察、块完成和 代码模板完成未选中,所有其他选项均已选中。

在工具中 | Options, Debugger Options 设置为 Integrated Debugging 和 自动隐式关闭文件...'已选中,其他所有未选中。

在项目中 |选项(编译器),优化未选中所有调试 除“仅定义”外检查的部分项目

条件定义是 DEBUG;madExcept

当断点被命中时,监视列表窗口显示“正在评估...” 每个手表名称。顺便说一句,手表名称是前一段时间输入的,当时所有 调试功能正常工作。

在断点(停止)尝试调试一段时间后, 工具栏上的运行按钮被禁用,我必须单击“运行 |程序 菜单上的“重置”,此时 madExcept 从 IDE 引发以下异常:

date/time         : 2014-09-28, 09:08:17, 855ms
computer name     : JOHNTAYLOR-LAP
user name         : JT <admin>
registered owner  : Microsoft / Microsoft
operating system  : Windows 7 x64 build 7600
system language   : English
system up time    : 10 days 22 hours
program up time   : 3 days
processors        : 8x Intel(R) Core(TM) i7 CPU Q 840 @ 1.87GHz
physical memory   : 7944/16308 MB (free/total)
free disk space   : (C:) 83.99 GB
display mode      : 1024x768, 32 bit
process id        : $2994
allocated memory  : 354.77 MB
command line      : "C:\CodeGear RAD Studio\CodeGear\RAD Studio\5.0\bin\bds.exe" -np
executable        : bds.exe
current module    : madExcept_.bpl
exec. date/time   : 2007-12-11 15:04
version           : 11.0.2902.10471
compiled with     : Delphi 2006/07
madExcept version : 4.0.6
callstack crc     : $f8d6ff12, $83616f26, $cd9b05a3
exception number  : 1
exception class   : EListError
exception message : List index out of bounds (0).

main thread ($325c):
20032558 +03c rtl100.bpl         Classes        3525   +3 TInterfaceList.Put
2087a8f4 +008 dbkdebugide100.bpl Debug          6414   +1 TThread.RemoveNotifier
20aa3b13 +043 coreide100.bpl     WatchWin       1543   +1 TWatchWindow.EvaluteComplete
20878cf9 +0fd dbkdebugide100.bpl Debug          5564  +12 TThread.EvalComplete
20877660 +02c dbkdebugide100.bpl Debug          4871   +2 TDbkApiEvent.Send
208784c8 +024 dbkdebugide100.bpl Debug          5300   +2 TDebugKernel.apiComplete
2013a81a +012 vcl100.bpl         Controls       4039   +1 TControl.ScreenToClient
209b6b21 +065 coreide100.bpl     EditorControl  6744   +3 TCustomEditControl.WMNCHitTest
7759e74d +078 ntdll.dll                                   RtlAnsiStringToUnicodeString
76977b0a +016 USER32.dll                                  CallWindowProcA
20885499 +039 dbkdebugide100.bpl Debug         11455   +3 TDebugger.DBKWndProc
20040e4c +014 rtl100.bpl         Classes       11583   +8 StdWndProc
7696810d +00a USER32.dll                                  DispatchMessageA

谁能帮我解决这个问题?这突然开始 一个月前,而不是根据我的任何新组件安装 知道。

【问题讨论】:

我建议完全重新安装,这可能是最“快速”的解决方案... 只是这个特定的项目导致调试器启动,还是一个全新的项目也会发生这种情况? @Copilot:对我来说似乎很激烈。您对“我的车的挡风玻璃刮水器留下条纹。我该怎么办”的建议是什么?买新车?或者“我的手指上有一个小伤口,一直在流血。我该怎么办?”截肢? 【参考方案1】:

我在 BDS2006 中遇到了同样的问题。我找到了一个对我有用的非常简单的解决方案。打开您的项目桌面文件 (.dsk)。转到手表部分。我刚刚删除了一些不需要的手表(不要忘记调整计数),再次启动 Delphi,我的手表和菜单项都已启用。

【讨论】:

以上是关于在 Delphi 2007 中丢失了一些调试功能的主要内容,如果未能解决你的问题,请参考以下文章

DELPHI 2007 动态链接库DLL断点调试

安装与调试

delphi fastmm4 调试

delphi导出excel一部分的列丢失了

Delphi DLL 和 Delphi EXE 之间的回调功能

Delphi 2007 的重构功能