调试

cmake release模式下 进行调试 (windows Visual Studio) 【代码】cmake release模式下 进行调试 (windows Visual Studio) 阅读详情

一 

VC6.0 Release 如何调试

写下来吧,当你在Release版本下无能为力的时候

首先必须明确的是,什么是Release版程序,什么是Debug版程序

Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。

Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Release 版错误,在此不讨论)

Debug 版本


参数 含义
/MDd /MLd 或 /MTd 使用 Debug runtime library (调试版本的运行时刻函数库)
/Od 关闭优化开关
/D "_DEBUG" 相当于 #define _DEBUG,打开编译调试代码开关 (主要针对assert函数)
/ZI 创建 Edit and continue(编辑继续)数据库,这样在调试过程中如果修改了源代码不需重新编译
/GZ 可以帮助捕获内存错误
/Gm 打开最小化重链接开关, 减少链接时间

 

Release 版本


参数 含义
/MD /ML 或 /MT 使用发布版本的运行时刻函数库
/O1 或 /O2 优化开关,使程序最小或最快
/D "NDEBUG" 关闭条件编译调试代码开关 (即不编译assert函数)
/GF 合并重复的字符串, 并将字符串常量放到只读内存, 防止被修改

 

实际上,Debug 和 Release 并没有本质的界限,他们只是一组编译选项的集合,编译器只是按照预定的选项行动。事实上,我们甚至可以修改这些选项,从而得到优化过的调试版本或是带跟踪语句的发布版本。

OK,知道了这些,谁还会说RELEASE版本不能调试?

只需要设置相应编译环境,RELEASE同样可以像DEBUG版本设置断点,查看参数。

步骤如下:

1、在Project Settings里选Settings For为All Configurations。

2、在C/C++标签中,Debug info 选 Program Database。

3、在Link 标签中,Category选 Debug,选中Debug info 复选框和Microsoft format。

    现在就可以像在Debug版本中那样设置断点进行测试了,但是记住,Release版本由于代码优化,有些变量是观察不到的,行的运行顺序可能也会不同。

 

 

二  

   .pdb,有时提示不正确。

    当使用exe调试一个dll时,有时候会提示"vc6.0.pdb找不到",即使你指定了正确的路径, 还会提示你".pdb虽然名字正确,但信息不正确".这种情况的原因极有可能是该dll的输出名字被修改了.

三  

   如何写正则表达式   msdn上介绍正则表达式的文章"platform sdk documentation"->tools and scripting->scripting->windows script technologies->vbscript->user's guide

[10]STM32程序调试方法-STLINK调试和软件调试 前言 参考资料 《STM32F1开发指南-库函数版本》3.4小节和6.4小节 《STM32中文参考手册V10》29章 阅读详情

相关推荐

使用IDLE调试器调试Python程序

分析定位程序错误是程序设计最基本的功能。Python标准库的调试器pdb提供了基本的调试功能:设置断点、查看变量等。集成开发环境 (IDE,例如IDLE、Spyder、 PyCharm) 则提供了更直接方便的调试器。

Zhangguohao666的博客 6771

CMake release 生成调试信息

【代码】CMake release 生成调试信息。

Walker_zyp的博客 812

如何使用 PyCharm 调试工具进行断点调试

在 Python 开发中,调试是一个重要环节。PyCharm 作为功能强大的集成开发环境(IDE),提供了直观、高效的调试工具。通过使用断点调试,开发者可以暂停程序运行、检查变量状态、逐步执行代码,从而快速定位和修复问题。本篇文章将介绍如何在 PyCharm 中使用调试工具进行断点调试,包括从基础操作到进阶功能的全面讲解。

2493

cmake下编译release添加可调试的信息

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_definitions(-DAF_CLASSARRANGE_EXPORTS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-Bsymbolic") set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb") set(CMA

qq_36583051的博客 5017

调试技巧:如何高效使用STM32调试器

理论知识需要实战检验。80/20法则适用于调试:80%的问题出在20%的代码中,通常是中断处理、内存管理和外设初始化这些关键区域。最简假设优先:调试时从最简单的可能原因开始排查(如接线问题、电源问题),而不是立即怀疑复杂的代码逻辑。变化点是关键线索:问题通常出现在最近修改过的代码附近,或者在系统状态发生变化的时刻(如从一种模式切换到另一种模式)。边界条件最容易出错:特别关注极限值、溢出情况、资源耗尽等边界条件。调试不仅是一种技能,更是一种思维方式。系统思考:将问题放在整个系统环境中考虑数据驱动。

2401_88760782的博客 1956

EmmyLua 断点调试、xlua断点调试

0.设置工程目录 1.安装EmmyLua-AttachDebugger插件 链接: https://pan.baidu.com/s/1ipuWGyIG0HxnuXx3ttiofg 提取码: sbqm 从本地硬盘安装插件方法 File/Setting/Plugins/点右上面的小齿轮/Install Plugin fromDisk...查找该插件的放置位置 2.创建调试配置 2.1打开运行配置页面 2.2新建EmmyLuaDebugger(NEW) 2.3配置 ...

yhx956058885的博客 6026

什么是调试?怎么调试?

所有发生过的事情都一定有迹可循,如果问心无愧,就不需要就掩盖也就没有迹象了,如果问心有愧,就必然需要掩盖,那就一定会有迹象,迹象越多就越同意顺藤而上,这就是推理的途径。一名优秀的程序员,同时也是一名优秀的侦探

猪肉炖粉条的博客 1万+

CMake的Debug和Release模式

然后,分别通过设置CMAKE_CXX_FLAGS_DEBUG和CMAKE_CXX_FLAGS_RELEASE来指定Debug和Release模式的编译选项。在上面的代码中,我们通过设置CMAKE_CXX_FLAGS_DEBUG和CMAKE_CXX_FLAGS_RELEASE变量来指定Debug和Release模式下的编译选项。例如,可以在Debug模式下定义一个名为DEBUG_MACRO的宏,而在Release模式下启用-O3优化选项。在软件开发中,调试和发布是两个重要的阶段。

KgCrystal的博客 4307

鸿蒙开发真机调试:无线调试和USB调试

了解鸿蒙的两种调试方法

hqy1989的博客 9493

CMake的Debug和Release构建模式

在CMake中,Debug和Release是两种常用的构建模式。在Debug模式下,编译器会生成包含调试信息的可执行文件,以便在调试过程中能够准确地定位错误和异常。此外,Debug模式还会禁用优化,以确保代码的执行顺序与源代码中的顺序一致,方便开发人员进行逐行调试。在Release模式下,编译器会对代码进行优化,以提高执行速度和减小可执行文件的大小。在本文中,我们将详细介绍Debug和Release模式的概念、使用方法和相关源代码示例。在源代码中,可以使用条件编译来针对Debug模式执行特定的代码段。

KgCrystal的博客 1634

TIMER-XL:突破长上下文限制的Transformer时序预测新范式

本文深入解析了清华大学提出的TIMER-XL模型,这是一种突破长上下文限制的Transformer时序预测新范式。它采用Decoder-only架构与补丁级生成技术,并创新性地引入TimeAttention机制,有效解决了传统模型在处理海量历史数据时面临的“上下文瓶颈”问题,显著提升了长序列预测的精度与稳定性。

weixin_28340315的博客 445

如何高效调试JavaScript代码:从Console到断点调试

如何高效调试JavaScript代码:从Console到断点调试

商务合作欢迎私信我 1万+

修改串口服务器,串口虚拟化 | 串口服务器Nport 5630 设置

原标题:串口虚拟化 | 串口服务器Nport 5630 设置JZGKCHINA项目改造,客户需要对IFix4.5进行升级,并优化通讯,在不改变原来配置的基础上逐步进行替换。需要将IFix升级到IFix5.9,数据库升级为SQL Server 2016,客户现场使用的智能仪表都是支持Modbus RTU协议的,因原来的手拉手的通讯方式的,当一台仪表掉线后,会影响到其他仪表的通讯,所以此次在不改变原有...

weixin_31688465的博客 2408

【Dll调试】DLL调试方法

dll本身是没法运行的,必须在其它工程调用dll时候才会运行。 所以,调试dll首先要将调用dll的工程和dll工程联系起来。 解决方案中添加dll工程: 现在dll 和 应用程序两个工程就都在一个解决方案里了: 这时要对dll工程作些设置。 配置属性-常规-输出目录设置为 应用程序的生成目录 (调用dll的应用程序的目录?) 这样一来编译的dll、pbd文件就直接输出到...

我的笔记本 1万+

告别手动发日报!用n8n+钉钉打造智能报告机器人(含模板下载)

本文详细介绍了如何利用n8n开源工作流自动化平台与钉钉机器人搭建智能日报系统,实现数据自动采集、处理和发送。通过实战步骤和模板下载,帮助用户告别手动处理日报的繁琐,提升工作效率和数据准确性。

h3i4j的博客 857

LIN协议栈 AUTOSAR架构下 状态管理

LIN State Manager 通过对这些状态的管理和转换,实现了对 LIN 总线通信状态的精确控制,以满足汽车电子系统中不同场景的需求。

汽车电子从业者,电子爱好者。 2051

GDB 调试

嵌入式 linux 应用程序 和内核 gdb 调试

weixin_44579363的博客 2万+

莫兰指数stata命令_一文读懂16个sp系列stata空间计量命令及应用

spcompress:Compress Stata-format shapefile压缩数据成stata格式的shapefile2、Looking at data/观测数据2、Looking at data/观测数据grmap:Graph choropleth maps绘制等值区域图spdistance:Calculator for distance between places计算区域之间距离3...

weixin_39719989的博客 822

gdb调试

命令名称命令缩写命令说明runr运行一个程序continuec让暂停的程序继续运行nextn运行到下一行steps如果有调用函数,进入调用的函数内部(相当于step intountilu运行到指定行停下来finishfi结束当前调用函数,到上一层函数调用处returnreturn结束当前调用函数并返回指定值,到上一层函数调用处jumpj将当前程序执行流跳转到指定行或地址printp打印变量或寄存器值backtracebt查看当前线程的调用堆栈。

m0_74186706的博客 2753

生信入门第七课:使用FastQC软件进行测序原始fastq数据质控

从实验到数据:RNA定量、文库片段长度、fastqc质控和fastp去接头

微生信 490

CCC数字钥匙3.0标准解读(16)

介绍通信过程最重要部分:身份认证和加密.介绍需要身份认证的过程和需要加密的数据及过程.

weixin_41738640的博客 1534

C++开发调试工具:GDB调试,windebug调试,adb调试

介绍C++开发过充中最常用的调试工具:GDB调试,windebug调试,adb调试,详细介绍adb的配置与调试

qianniulaoren的博客 2185

YOLOP v2!YOLOv7结合YOLOP的多任务版本 更好、更快、更强

YOLOP v2!YOLOv7结合YOLOP的多任务版本 更好、更快、更强

jacke121的专栏 2705

如何使用 VS Code 的调试工具进行断点调试

在 Python 开发中,调试是定位和修复问题的关键环节。作为一款轻量、功能强大的编辑器,Visual Studio Code(VS Code) 提供了直观、灵活的调试工具,让开发者可以轻松设置断点、检查变量状态、逐步执行代码等。无论是初学者还是经验丰富的开发者,VS Code 的调试功能都能显著提高调试效率。本文将详细介绍如何在 VS Code 中使用调试工具进行断点调试,从基础操作到进阶技巧,帮助你快速上手并掌握调试工具的核心功能。

3733

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

GDB调试

简单常用gdb命令的学习实操

weixin_44628585的博客 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C++调试@认识GDB调试

GDB(GNU Debugger)是Linux及Unix环境中常用的程序调试工具,windows 下也有许多移植版可以用深入理解程序执行:GDB命令行提供了对程序执行流程的底层控制,帮助你更深入地理解程序的运行机制。通过手动控制每一步执行,你能够更细致地观察变量变化、函数调用、内存状态等,这对于复杂问题的排查非常有帮助。轻量级和灵活性:相比IDE,GDB是一个轻量级工具,尤其适合远程服务器或资源受限环境下的调试。

xuchaoxin1375的博客 1367

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 工作日记3
下一篇: com套间
keepdoingit
博客等级 码龄17年 27粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值