gpt4 book ai didi

C++ 添加仅在调试时运行的调试代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:40:22 26 4
gpt4 key购买 nike

正如问题所解释的那样:我想添加一些仅在程序附加到调试器时运行的调试代码。我想这个 flagpre-processor 变量对于每个编译器都会不同......

在我的例子中,我使用的是带有 C++ 的 Microsoft Visual Studio 2010。

我还在家中另一台运行 Ubuntu 10.4 和 C++ 的计算机上使用 Eclipse。

最佳答案

这个问题可能意味着两件事中的一件:

  1. 仅基于构建配置(例如发布与调试)运行的代码
  2. 仅在附加调试器时运行的代码

基于构建配置

这可以通过使用与您的编译器相关的预处理器宏来解决(例如 _DEBUG for the Win32 CRT )。

基于是否附加调试器

这可以通过几种不同的方式解决。

全局 bool 变量

我发现的一种方法是定义一个初始化为 false 的全局 bool 变量,如下所示:

bool gDebug = false;

当我用我的调试器附加到代码时,中断代码并通过 Watch 窗口用 true 覆盖 gDebug。然后您可以添加在设置为真时有条件地运行的代码:

if (gDebug)
{
// Debugger is attached, so run this code
// ...
}

注册表键

定义一个初始化为 0DWORD 注册表值,但您可以通过注册表编辑器覆盖为 1

然后,您可以根据将此注册表值设置为 1 来设置调试代码。 这可能是更好的选择,因为您可以从外部控制此值,而无需中断调试器来设置全局变量在适当的时候变量。

关于C++ 添加仅在调试时运行的调试代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4200004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com