c++中,函数内部定义的结构体,在VC中无法调试

Cworld 2010-11-02 04:57:32
今天遇到了一个问题,百度和google都没找到满意的答案。
问题描述:下面的函数,我为了封装我的实现细节,就把Point结构体定义为在函数里面,但是在函数调用出错的时候,
用VS2008,Debug,去发现p变量无法调试,no symbol p
void Draw()
{
struct Point
{
double x;
double y;
};
Point p;
p.x=50;
}
请问这是各位大牛这是为什么呢? 因为我的结构体定义在函数栈上吗? 这样写是不是占用了函数栈的空间,如果不这么写,把 Point 结构体放在函数外面是可以调试的。
...全文
178 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongkun18 2010-11-02
  • 打赏
  • 举报
回复
void Draw()
{
struct Point
{
double x;
double y;
};
Point p;
p.x=50;
}

int main()
{
Draw();
}
如果程序如上.在p.x=50;语句前设置断点.没问题哦.
GingerJWS 2010-11-02
  • 打赏
  • 举报
回复
你的debug版本如果没有特别设置,应该可以看到它的成员啊

你改成这样:
typedef struct _Point
{
double x;
double y;
}Point;
试下

不能调试,是由于这个结构体定义的symbol没有写到pdb中。
shexinwei 2010-11-02
  • 打赏
  • 举报
回复
是不是断点的位置在p定义的前面?导致没有
shenchenman 2010-11-02
  • 打赏
  • 举报
回复
用2008测试没有问题。

64,654

社区成员

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

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