我需要在调试器下运行时禁用一些代码。
所以,我想象一下:
{$IFNDEF DEBUG}
...
{$ENDIF}
但是,ifndef中的代码是在调试器中执行的,可能会崩溃。
我有lazarus 0.9.29& FPC 2.4.0
答案 0 :(得分:2)
您提到的编译器指令实际上是:编译器指令,而不是调试指令。
它们与编译过程有关,与调试系统完全分开。
你要做的是:
您正在混淆编译和调试并将它们放在相同的上下文中 它们实际上位于完全独立的环境中 这可能是因为您在同一GUI系统下编译和调试,但如果您编译程序,调试器唯一需要的是断点。
希望它有所帮助。
编辑:您可以通过程序/单元顶部的某个简单{$ DEFINE DEBUG}定义它,或使用Lazarus选项窗格将其添加为命令行参数。
完成我的回答。
答案 1 :(得分:0)
{$IFOPT D-}
//code
{$ENDIF}
如果启用了$ DEBUGINFO,则使用调试器运行!