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