将ActiveX服务器(用于MS Word)从Delphi 7升级到Delphi 2010后,断点不再停止

将ActiveX服务器(用于MS Word)从Delphi 7升级到Delphi 2010后,断点不再停止,delphi,delphi-xe4,Delphi,Delphi Xe4,我有一个用addin Express VCL开发的Word addin(一个ActiveX服务器(DLL),在将整个项目从D7升级到XE4后,我发现断点不再稳定-有时断点会停止,但大多数时候不会 我已经尝试了其他问题的所有解决方案(如谷歌搜索结果的前两页所示:delphi breakpoint不工作站点:stackoverflow.com),但没有一个有效。有什么帮助吗?谢谢 更新1:我尝试过的事情: 确保生成配置为“调试” 重建整个项目 “调试信息”项目选项已启用 “本地符号”项目选项已启用

我有一个用addin Express VCL开发的Word addin(一个ActiveX服务器(DLL),在将整个项目从D7升级到XE4后,我发现断点不再稳定-有时断点会停止,但大多数时候不会

我已经尝试了其他问题的所有解决方案(如谷歌搜索结果的前两页所示:
delphi breakpoint不工作站点:stackoverflow.com
),但没有一个有效。有什么帮助吗?谢谢

更新1:我尝试过的事情:

  • 确保生成配置为“调试”
  • 重建整个项目
  • “调试信息”项目选项已启用
  • “本地符号”项目选项已启用
  • 启用链接->调试信息
  • “远程调试”已启用“

更新2:非常奇怪,在启用“使用调试DCU”后,重新生成,再次禁用,重新生成,现在我得到以下错误。也就是说,断点第一次工作,然后在CPU窗口出现一些意外的停止,终止MS Word(主机),并尝试启动调试将导致以下错误,并且必须启动IDE但不在调试模式下没有问题时

---------------------------
Error
---------------------------
Assertion failure: "!"could not initialize evaluator""
in ..\win32src\eval32.cpp at line 1231

---------------------------
OK   Details <<   
---------------------------
[2039534C]{dbkdebugide180.bpl} Debug.TDebugKernel.msgBox (Line 5931, "Debug.pas" + 30) + $0
[2E027FA9]{bordbk180.dll} Unknown function at @isDbkLoggingOn$qv + $E0D1
[0DBAA4CC]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $2F654
[0DB7C6BF]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $1847
[080A4124]{dcc32180.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\DCC32\CODEGEN.OBJ.FlushConst + $2170
[080A4D26]{dcc32180.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\DCC32\CODEGEN.OBJ.FlushConst + $2D72
[0067FA5D]{bds.exe     } bds.bds (Line 204, "" + 8) + $19C49E
[080A4D26]{dcc32180.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\DCC32\CODEGEN.OBJ.FlushConst + $2D72
[080B164A]{dcc32180.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\DCC32\CODEGEN.OBJ.GenPackageBody + $116
[080AF6D3]{dcc32180.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\DCC32\CODEGEN.OBJ.FlushConst + $D71F
[07F9130B]{dcc32180.dll} C:\BUILDS\TP\LIB\WIN32\DEBUG\C0D32W.OBJ.___System__GetTls + $11
[080B1AD4]{dcc32180.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\DCC32\CODEGEN.OBJ.GenIntfAdjustor + $398
[080A4124]{dcc32180.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\DCC32\CODEGEN.OBJ.FlushConst + $2170
[07FA4413]{dcc32180.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\DCC32\BROWCMGR.OBJ.DumpSymtabUnitListLast + $BF
[080A3616]{dcc32180.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\DCC32\CODEGEN.OBJ.FlushConst + $1662
[080A1C03]{dcc32180.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\DCC32\CODEGEN.OBJ.ReserveConstructorFrameSlots + $140B
[0808D5A1]{dcc32180.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\DCC32\LNK2DISK.OBJ.LocateLocalSymbols + $97D
[07FA8BBA]{dcc32180.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\DCC32\BROWCMGR.OBJ.SetCompState + $FA
[07FA87E1]{dcc32180.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\DCC32\BROWCMGR.OBJ.ClosePackageFilesDLL + $11D
[07FA8809]{dcc32180.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\DCC32\BROWCMGR.OBJ.ClosePackageFilesDLL + $145
[0DB90C9F]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $15E27
[57008381]{madBasic_.bpl} Madstrings.WideToAnsiEx + $2D
[570114D4]{madBasic_.bpl} Madtools.FindModule + $C8
[57011500]{madBasic_.bpl} Madtools.FindModule + $F4
[5005FA84]{rtl180.bpl  } System.TMonitor.TryEnter (Line 17109, "System.pas" + 10) + $0
[5005F618]{rtl180.bpl  } System.TMonitor.Enter (Line 16808, "System.pas" + 4) + $2
[5005F7EB]{rtl180.bpl  } System.TMonitor.Exit (Line 16933, "System.pas" + 2) + $7
[0DBB1FCA]{bordbk180N.dll} Unknown function at POSTEDHOOKPROC + $1246
[0DBB4EBB]{bordbk180N.dll} Unknown function at POSTEDHOOKPROC + $4137
[0DBA3ED7]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $2905F
[0DBA3EE8]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $29070
[5981E15C]{madExcept_.bpl} Madexcept.IsTrueUnicodeString + $4BC
[5981E181]{madExcept_.bpl} Madexcept.IsTrueUnicodeString + $4E1
[5985A581]{madExcept_.bpl} Madexcept.UnpatchAPI + $801
[0DB90751]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $158D9
[5985A596]{madExcept_.bpl} Madexcept.UnpatchAPI + $816
[0DB90751]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $158D9
[0DB844DD]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $9665
[0DBAFB9D]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $34D25
[0DBADDE3]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $32F6B
[0DBADF23]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $330AB
[0DBA5D9E]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $2AF26
[0DBB4F27]{bordbk180N.dll} Unknown function at POSTEDHOOKPROC + $41A3
(000083C9){bordbk180N.dll} [0DB793C9]
[0DB7C032]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $11BA
[0DB9B760]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $208E8
[504575B5]{vcl180.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10039, "Vcl.Controls.pas" + 153) + $6
[0DBB167F]{bordbk180N.dll} Unknown function at POSTEDHOOKPROC + $8FB
[0DB9ADAC]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $1FF34
(00007EE1){bordbk180N.dll} [0DB78EE1]
[21101D7A]{designide180.bpl} DeskUtil.SetFocusHook (Line 463, "DeskUtil.pas" + 4) + $C
[218A45BB]{vclactnband180.bpl} Vcl.ActnMenus.CallWindowHook (Line 748, "Vcl.ActnMenus.pas" + 20) + $F
[0DB9C588]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $21710
[0DB9C56F]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $216F7
[0DB88656]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $D7DE
[0DB9C588]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $21710
[0DB7ED8A]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $3F12
[0DB9BC13]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $20D9B
[0DB9BEAD]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $21035
[0DB9D749]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $228D1
[0DBBF4DB]{bordbk180N.dll} Unknown function at POSTEDHOOKPROC + $E757
[0DBB1FCA]{bordbk180N.dll} Unknown function at POSTEDHOOKPROC + $1246
[0DBB2924]{bordbk180N.dll} Unknown function at POSTEDHOOKPROC + $1BA0
[0DBB2753]{bordbk180N.dll} Unknown function at POSTEDHOOKPROC + $19CF
[0DB7E60C]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $3794
[0DB7E634]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $37BC
[0DB88DDF]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $DF67
[0DB9C6C0]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $21848
[0DBA10D2]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $2625A
[0DB9CF1C]{bordbk180N.dll} Unknown function at @isDbkLoggingOn$qv + $220A4
[5016EDDD]{rtl180.bpl  } System.Classes.TComponent.UpdateAction (Line 16030, "System.Classes.pas" + 1) + $A
[5057C69F]{vcl180.bpl  } Vcl.Forms.ProcessUpdate (Line 7244, "Vcl.Forms.pas" + 1) + $11
[5005EE12]{rtl180.bpl  } System.@IsClass (Line 15664, "System.pas" + 1) + $8
[5057C708]{vcl180.bpl  } Vcl.Forms.TraverseClients3 (Line 7261, "Vcl.Forms.pas" + 5) + $1E
[5016EDDD]{rtl180.bpl  } System.Classes.TComponent.UpdateAction (Line 16030, "System.Classes.pas" + 1) + $A
[5057C69F]{vcl180.bpl  } Vcl.Forms.ProcessUpdate (Line 7244, "Vcl.Forms.pas" + 1) + $11
[5005EE12]{rtl180.bpl  } System.@IsClass (Line 15664, "System.pas" + 1) + $8
[5057C713]{vcl180.bpl  } Vcl.Forms.TraverseClients3 (Line 7261, "Vcl.Forms.pas" + 5) + $29
[5057C722]{vcl180.bpl  } Vcl.Forms.TraverseClients3 (Line 7261, "Vcl.Forms.pas" + 5) + $38
[5016EDDD]{rtl180.bpl  } System.Classes.TComponent.UpdateAction (Line 16030, "System.Classes.pas" + 1) + $A
[50455D4A]{vcl180.bpl  } Vcl.Controls.TWinControl.GetControl (Line 9131, "Vcl.Controls.pas" + 4) + $A
[5005EE12]{rtl180.bpl  } System.@IsClass (Line 15664, "System.pas" + 1) + $8
[5016EDDD]{rtl180.bpl  } System.Classes.TComponent.UpdateAction (Line 16030, "System.Classes.pas" + 1) + $A
[5057C69F]{vcl180.bpl  } Vcl.Forms.ProcessUpdate (Line 7244, "Vcl.Forms.pas" + 1) + $11
[5005EE12]{rtl180.bpl  } System.@IsClass (Line 15664, "System.pas" + 1) + $8
[5057C708]{vcl180.bpl  } Vcl.Forms.TraverseClients3 (Line 7261, "Vcl.Forms.pas" + 5) + $1E
[5057C722]{vcl180.bpl  } Vcl.Forms.TraverseClients3 (Line 7261, "Vcl.Forms.pas" + 5) + $38
(00037999){CnWizards_DXE4.dll} [0E048999]
(00037A00){CnWizards_DXE4.dll} [0E048A00]
(00037AB1){CnWizards_DXE4.dll} [0E048AB1]
[50455D4A]{vcl180.bpl  } Vcl.Controls.TWinControl.GetControl (Line 9131, "Vcl.Controls.pas" + 4) + $A
(000352F2){CnWizards_DXE4.dll} [0E0462F2]
(00263348){mmx_bds11.dll} [0F204348]
[500630C0]{rtl180.bpl  } System.@FinalizeArray (Line 29800, "System.pas" + 139) + $0
[500630B0]{rtl180.bpl  } System.@FinalizeArray (Line 29788, "System.pas" + 127) + $0
[50580E8F]{vcl180.bpl  } Vcl.Forms.TApplication.ProcessMessage (Line 10290, "Vcl.Forms.pas" + 25) + $1
[50580ECA]{vcl180.bpl  } Vcl.Forms.TApplication.HandleMessage (Line 10318, "Vcl.Forms.pas" + 1) + $4
[50581205]{vcl180.bpl  } Vcl.Forms.TApplication.Run (Line 10456, "Vcl.Forms.pas" + 26) + $3
---------------------------
错误
---------------------------
断言失败:“!”无法初始化计算器“”
在第1231行的..\win32src\eval32.cpp中
---------------------------

OK Details回答我自己-似乎是GExperts的
DBugIntf.pas
导致了一些奇怪的错误。在禁用它之后,我的IDE中的断点以基本上可以接受的方式工作——如果它停止工作,重新启动IDE将修复它。谢谢大家的帮助。

解释一下“不起作用”是什么意思?(是否在断点处停止?无法设置?与代码中的正确行不匹配?)有一件事您在尝试过的内容中没有提到:您是否检查过是否有任何代码显式禁用调试信息?项目设置可以由
{$D-}
{$DEBUGINFO OFF}
覆盖。还要确保您没有引用同一单元的不同副本。这可能会导致断码出现在错误的位置。您是否也完成了选项>Delphi编译器>编译>使用调试。dcus=True。还要清理项目,然后编译。这主要是一个单元,还是几个单元?您是否确保单元行尾都是CRLF,而不是LF或CR(有时在粘贴网页或帮助文件中的代码时发生)。@Craigyong,我的意思是IDE从不在断点处停止。我已经更新了我的问题。@Ravaut123,是的,我试过了。