在VS中设置release工程可调试

本文详细描述了如何在VisualStudio中针对Release工程进行调试设置,包括启用生成调试信息、选择调试信息格式以及禁用优化,以便于设置断点进行问题追踪。

今天release工程的cout 不够用了,需要在工程中整一整调试,下面记录一下设置步骤,方便调试
1、用vs 打开工程 ,工程默认已经是release x64 模式了;
2、选中要调试的工程,右键->属性,设置3处如下:

(1)链接器->调试->生成调试信息(/DEBUG)
在这里插入图片描述
(2) C/C++ ->常规->调试信息格式->程序数据库(/Zi)
在这里插入图片描述
(3)C/C++ ->优化->优化->已禁用(/Od)
在这里插入图片描述
(4)点击属性对话框应用、确认即搞定设置,在需要跟踪处F9打断点,调试启动工程。
在这里插入图片描述

在 CMakeLists 中为 VS 工程Release 模式添加代码调试功能,主要是通过设置合适的编译和链接选项来生成调试信息。下面是具体的操作方法: ### 为 MSVC 编译器设置选项 对于使用 MSVC 编译器的情况,需要在 CMakeLists.txt 中设置 CXXFLAGS 和 LFLAGS,以在 Release 模式下生成调试信息。示例代码如下: ```cmake if(MSVC) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Od /Zi /MD") set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG") set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG") endif() ``` 在上述代码中,`/Od` 选项用于关闭优化,`/Zi` 选项用于生成调试信息,`/MD` 选项用于使用多线程 DLL 版本的运行时库。`/DEBUG` 选项用于在链接时生成调试信息。 ### 为 MinGW 编译器设置选项 如果使用 MinGW 编译器,需要添加调试信息并禁止优化,同时去掉 `-s` 参数。示例代码如下: ```cmake if(MINGW) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -g -O0") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -g -O0") string(REGEX REPLACE "-s" "" CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") string(REGEX REPLACE "-s" "" CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") endif() ``` 在上述代码中,`-g` 选项用于添加调试信息,`-O0` 选项用于禁止优化。`string(REGEX REPLACE)` 用于去掉 `-s` 参数,该参数会省略输出文件中的所有符号信息。 ### 完整的 CMakeLists.txt 示例 ```cmake cmake_minimum_required(VERSION 3.10) project(YourProjectName) # 设置 C++ 标准 set(CMAKE_CXX_STANDARD 11) # 为 MSVC 编译器设置选项 if(MSVC) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Od /Zi /MD") set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG") set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG") endif() # 为 MinGW 编译器设置选项 if(MINGW) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -g -O0") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -g -O0") string(REGEX REPLACE "-s" "" CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") string(REGEX REPLACE "-s" "" CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") endif() # 添加可执行文件 add_executable(YourExecutable main.cpp) ``` ### 总结 通过以上设置,可以在 VS 工程Release 模式下添加代码调试功能。不同的编译器需要设置不同的选项,以确保生成正确的调试信息。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值