运行时库选择时,什么情况,需要用到选择调试版本?

Comingl 2014-05-01 10:08:01
先不管动态和静态链接。

调试版本的运行时库,当然就是,运行时库里面含有调试信息了。

我自己的工程,我可以选择Release和Debug来编译,选择Debug方便调试我自己的代码。

但问题是,什么情况下,需要运行时库也选择Debug版本?

运行时库的代码,又不是我写的,是微软写的,难道我还要帮微软调试他写的代码?

我想知道,什么情况,选择Debug版本的运行时库,有什么好处?























...全文
89 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Comingl 2014-05-01
  • 打赏
  • 举报
回复
我想问的是,运行时库,选择Debug和不选择Debug,有什么不一样。 能不能用例子,说明选择Debug的作用?
引用 1 楼 zhaowech 的回复:
运行时库的代码,又不是我写的,是微软写的,难道我还要帮微软调试他写的代码? 不知道你这句话怎么想的,微软提供了工具给你用,用就好了,什么叫做帮它调试?何来帮之意? debug版本的exe或dll是有可能被直接拿来使用的,例如,你debug生成了一个控制台程序,你想在命令行下运行,附加一些控制选项,而你又不愿意在IDE里面去设置,这时候如果没有debug运行库,你的程序无法运行,想看结果就不够方便了。
孤影品茗 2014-05-01
  • 打赏
  • 举报
回复
debug和调试的区别没必要提问解决,自己搜索,解释很清楚的
孤影品茗 2014-05-01
  • 打赏
  • 举报
回复
[quote=引用 2 楼 zhaowech 的回复:] 我刚刚试了下,debug版本在运行出错时,可以提供错误信息,我故意设置了一个异常,然后运行到异常的时候,就能利用debug版本的错误信息,定位错误位置
#include "stdafx.h"
#include <assert.h>


int _tmain(int argc, _TCHAR* argv[])
{
	int a,b;
	scanf("%d %d",&a,&b);
	assert(NULL);
	printf("a+b=%d",a+b);
	return 0;
}
提示,在第12行,遇到异常[/quote 当然,信息提示的12行,是在我的编译器中的显示位置,按照贴出的代码看,对应第9行
孤影品茗 2014-05-01
  • 打赏
  • 举报
回复

我刚刚试了下,debug版本在运行出错时,可以提供错误信息,我故意设置了一个异常,然后运行到异常的时候,就能利用debug版本的错误信息,定位错误位置
#include "stdafx.h"
#include <assert.h>


int _tmain(int argc, _TCHAR* argv[])
{
int a,b;
scanf("%d %d",&a,&b);
assert(NULL);
printf("a+b=%d",a+b);
return 0;
}

提示,在第12行,遇到异常
孤影品茗 2014-05-01
  • 打赏
  • 举报
回复
运行时库的代码,又不是我写的,是微软写的,难道我还要帮微软调试他写的代码? 不知道你这句话怎么想的,微软提供了工具给你用,用就好了,什么叫做帮它调试?何来帮之意? debug版本的exe或dll是有可能被直接拿来使用的,例如,你debug生成了一个控制台程序,你想在命令行下运行,附加一些控制选项,而你又不愿意在IDE里面去设置,这时候如果没有debug运行库,你的程序无法运行,想看结果就不够方便了。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧