草庐IT

debug_release

全部标签

c++ - "release sequence"是什么意思?

我不明白,为什么没有releasesequence会出问题,如果我们在下面的示例中有2个线程。我们对原子变量count只有2个操作.count如输出所示,按顺序递减。来自安东尼威廉姆斯的C++ConcurrencyinAction:Imentionedthatyoucouldgetasynchronizes-withrelationshipbetweenastoretoanatomicvariableandaloadofthatatomicvariablefromanotherthread,evenwhenthere’sasequenceofread-modify-writeopera

c++ - 代码中哪里定义了DEBUG?

我查看了在我的服务器上创建日志系统的示例代码......我发现了这个#ifDEBUGprintf("somethinghere");#endif我知道它的作用。它仅在DEBUG被defiend时才打印一些东西。但是DEBUG在哪里定义的呢?我查看了所有头文件,但找不到DEBUG..另外,能否请您提供一个关于设计日志系统的好例子或教程?提前致谢.. 最佳答案 不要使用C++标准未定义的DEBUG宏。C++标准定义了NDEBUG(无DEBUG),它用于标准的assert宏,您的日志记录代码将与它齐头并进。DEBUG依赖于编译器。因此,N

c++ - 如何分离调试和 Release模式代码

在Debug模式或者测试的时候,我需要打印很多不同的信息,所以我使用这个方法:#ifdefTESTING//codewithlotsofdebugginginfo#else//cleancodeonly#endif//TESTING`这个方法好吗,或者还有其他简单优雅的方法吗?但这样一来,我在两个地方重复了相同的代码,如果以后要更改代码中的任何内容,我必须在两个地方都这样做,这既耗时又容易出错。谢谢。我正在使用MSVisualStudio。 最佳答案 您可以使用宏来打印调试信息,然后在发布版本中将该宏定义为空。例如,#ifdef_D

c++ - 在哪里可以找到有关 D_GLIBCXX_DEBUG 和 DNDEBUG 标志的更多信息?

我正在尝试了解D_GLIBCXX_DEBUG和DNDEBUG标志。但是我找不到关于它们的信息。谁能解释一下他们在做什么?我在哪里可以阅读更多关于它们的信息? 最佳答案 两者都使用-D它定义了D之后的宏。定义NDEBUG时,assert不检查它的参数。当_GLIBCXX_DEBUG被定义时,它激活debugmode在libstdc++中(使libstdc++对各种操作执行检查)。 关于c++-在哪里可以找到有关D_GLIBCXX_DEBUG和DNDEBUG标志的更多信息?,我们在Stack

c++ - 为什么 Visual Studio 的 Debug模式 Step Into (F11) 有时不会进入某些函数内部?

我正在使用F11键(StepInto模式)调试给定的C++代码,以便了解调用代码中函数的精确顺序,我意识到它除非我在函数定义内的某行设置断点,否则永远不会进入某些函数。我的意思是,如果我从main方法调用一个函数,并且该函数在另一个.cpp中定义,我希望F11Debug模式逐步进入在函数内部以分析变量的变化。大多数时候它确实如此,但在某些情况下它只是执行函数而不进入它,然后跳转到main方法中的下一行。为什么会这样?示例:这是F11永远不会进入的函数:voidVirtualCamera::display(void){glClearColor(0.0f,0.0f,0.0f,1.0f);/

c++ -/MT 和/MD 构建崩溃,但仅当未附加调试器时才会崩溃 : how to debug?

这个问题在这里已经有了答案:Programonlycrashesasreleasebuild--howtodebug?(29个答案)关闭9年前。我有一个小型单线程C++应用程序,使用VisualStudio2005编译和链接,它使用boost(crc、program_options和tokenizer)、少量STL和其他各种系统头文件。(它的主要目的是读取.csv并生成自定义二进制.dat和配对的.h声明“解释”.dat格式的结构。)该工具在调试器之外运行时崩溃(NULL上的访问冲突),仅在发行版中。例如。按F5不会导致工具崩溃,Ctrl-F5会。当我重新连接调试器时,我得到了这个堆栈

c++ - 使用 mingw-w64 工具链时,以 Release模式链接的 Regex Boost 库会发出 "duplicate section has different size"警告

在Release模式下链接我的项目时,我收到以下警告:myProject-libs/release/libboost_regex-mt-s-1.50.0.a(cpp_regex_traits.o):duplicatesection`.data$_ZZN5boost16cpp_regex_traitsIcE21get_catalog_name_instEvE6s_name[boost::cpp_regex_traits::get_catalog_name_inst()::s_name]'hasdifferentsize我怀疑原因可能是boost库的编译选项与我在项目中使用的选项不同,但我

c++ - boost 程序选项不适用于 GLIBCXX_DEBUG

我有以下示例代码:#include#includeintmain(intac,char*av[]){//Declarethesupportedoptions.boost::program_options::options_descriptiondesc("Allowedoptions");desc.add_options()("help","producehelpmessage");boost::program_options::variables_mapvm;boost::program_options::store(boost::program_options::parse_com

c++ - x64 构建 : error MSB8013: This project doesn't contain the Configuration and Platform combination of Debug|Win32

我正在尝试为具有许多解决方案(一些用于CI,一些用于开发人员)和数百个项目的复杂构建运行纯x64构建,并遇到“错误MSB8013:该项目不包含配置和Debug|Win32的平台组合”我已将其简化为一个简单的配置:解决方案A包含项目X和项目Y。项目X有一个项目引用项目Y。解决方案B包含也包含项目X。所有项目或解决方案都不包含Win32平台-它已被删除。当我构建解决方案B(作为x64)时,我收到errorMSB8013:Thisprojectdoesn'tcontaintheConfigurationandPlatformcombinationofDebug|Win32错误信息有时包含额外

android - Qt Android : Why is a QtApp-debug. apk 为发布版本创建?

我在发布版本中构建我的Qt/C++Android应用程序,但是生成了以下APK文件:Release/android-build/bin/QtApp-debug.apkRelease/android-build/bin/QtApp-debug-unaligned.apk我找到了thisquestion这意味着APK文件是在Debug模式下构建的,即使对于Release构建也是如此。那里的答案暗示发布版本只有在您拥有证书时才有可能。我按照那里的说明进行操作,实际上在创建证书后,我得到了这些文件:Release/android-build/bin/QtApp-release.apkRelea