我创建了一个宏,
#define DEBUG_BREAK(a) if (a) __asm int 3;
但问题是如果没有附加调试器,程序将运行不正确.
所以我需要知道是否附加了调试器.如果有一个调试器,应用程序应该调用int 3.否则,它不应该调用.
我怎么能这样做?
解决方法
你可以使用
CheckRemoteDebuggerPresent
或
IsDebuggerPresent
– 不,CheckRemoteDebuggerPresent并不一定意味着调试器在不同的机器上运行,只是在系统中有一个可以处理断点等的调试过程(当使用远程调试器时,有目标系统上的一个小过程,它来自哪里).
编辑:在这一点上,我肯定会建议某种形式的功能,而不是宏.