VS2008 .ncb工程文件导致调试错误

在软件开发过程中,遇到工程移动位置后出现指针为空但TRACE显示地址有值的问题,通过删除并重新打开工程的方式解决了编译或调试错误。介绍了TRACE宏在调试中的使用方法及与printf函数的区别,特别指出TRACE宏仅在Debug版本中生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         今天出现调试怪事儿,要不是总监有经验,估计我得捣腾半天了。因为工程移动了位置(拆了硬盘,盘符改了),调试时出现一个指针为空,但是TRACE()显示出来的地址却是有值的。工程.ncb文件中保留了一些历史信息,跟智能提示有关,但有时有可能会导致编译或调试错误。如果确信程序没有bug,不妨把这个删掉,再打开工程重新编译。

        有时候连调试器都不能相信,真汗……,对总监再仰望三分,一上来就用TRACE。以前还没用过,搜集信息:

TRACE 宏有点象我们以前在C语言中用的Printf函数,使程序在运行过程中输出一些调试信息,使我们能了解程序的一些状态。但有一点不同的是:
TRACE 宏只有在调试状态下才有所输出,而以前用的Printf 函数在任何情况下都有输出。和Printf 函数一样,TRACE函数可以接受多个参数如:

int x = 1;
int y = 16;
float z = 32.0;
TRACE( "This is a TRACE statement\n" );
TRACE( "The value of x is %d\n", x );
TRACE( "&x = %p\n", &x);
TRACE( "x = %d and y = %x and z = %f\n", x, y, z );

要注意的是TRACE宏只对Debug 版本的工程产生作用,在Release 版本的工程中,TRACE宏将被忽略。Debug中,TRACE宏内容输出到VC的Output窗口。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值