| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 485 人关注过本帖
标题:一个VC6下设置“数据断点”的问题
取消只看楼主 加入收藏
艺术的生活
Rank: 2
等 级:论坛游民
帖 子:51
专家分:77
注 册:2013-7-28
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:3 
一个VC6下设置“数据断点”的问题
为了学习“数据断点”的设置和使用,我根据参考资料上的一个程序进行设置,程序代码如下

#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[])

{

       char szName1[10];
       char szName2[4];

       strcpy(szName1,"shenzhen");            
       printf("%s\n",szName1);          //A
       strcpy(szName2,"vckbase");              //B
       printf("%s\n",szName1);
       printf("%s\n",szName2);

       return 0;

}

首先,我再程序标示的“A”行设置一个普通断点,点击F5(Go)开始调试,这时黄色箭头指向“A”行。
其次,我打开breakpoints对话框,在data选项卡下设置数据断点为“szName1”,设置好后点击确定按钮。
最后,我再次点击F5(Go)开始调试
问题是:正常应该是黄色箭头指向“B”行,表示在“B”行szName1的值改变了。可是我的程序却直接退出了调试状态,黄色箭头也没有了,为什么呢?
请回答的朋友先帮我实验一下再回答问题吧,谢谢了。

==========================================================
以上是在网上找到的一个人的疑问,刚好我也碰到了,情况和和他一模一样,请问,这是怎么回事。是和VC的版本有关还是和具体的参数设置有关系。
搜索更多相关主题的帖子: 参考资料 include return 断点 标示 
2013-10-24 10:06
艺术的生活
Rank: 2
等 级:论坛游民
帖 子:51
专家分:77
注 册:2013-7-28
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
是不是和这个有关系。我用的的不是原版,汉化之后看不懂这行字是什么意思
2013-10-24 10:15
艺术的生活
Rank: 2
等 级:论坛游民
帖 子:51
专家分:77
注 册:2013-7-28
收藏
得分:0 
回复 3楼 TonyDeng
szName1的值不是因为对szName2的赋值而发生改变了吗(szName2溢出)
2013-10-24 17:10
艺术的生活
Rank: 2
等 级:论坛游民
帖 子:51
专家分:77
注 册:2013-7-28
收藏
得分:0 
是不是这样的啊。(好像恍然大悟的样子)

我们是要获得用%s即字符串的形式输出的szName1的值的改变的情况。但是在VC6的调试器当中,对szName1的处理是脱离了上下文环境的,它只是看szName1这个数组名代表的数组的首地址有没有发生改变。而这个首地址的值是不会发生变化的,只是其中的数组元素的值发生了变化。所以,就算设置了数据断点,但它根本不会在这个地方断下来。

以上是我的理解。望Toney兄赐教,不甚感谢!
2013-10-24 17:25
快速回复:一个VC6下设置“数据断点”的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024228 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved