【发布时间】:2012-03-29 19:02:29
【问题描述】:
我的 C++ 应用程序有问题。它是在 32 位电脑上开发的,在 Microsoft Visual Studio 2008 上,现在我正在尝试在 64 位电脑上运行它。
在我的 32 位电脑上运行良好;在 64 位 pc 上,Visual Studio 没有给出任何编译问题,但是在执行时给出了错误的结果。 我不明白为什么。
在代码中,我定义了一个名为“dag”的变量,它是直接无环图的结构。通过调试软件发现,虽然我声明了,但是后来软件无法往里面插入数据,调试器说:
CXX0017: Error: symbol "dags" not found
这是我的代码:
Dag<int64_t>* dags = new Dag<int64_t>();
dags = getDagsFromRequest2(request, dags);
非常奇怪的是,如果我按照getDagsFromRequest2()函数内部的流程,我可以清楚地看到dags变量充满了数据:在“quickwatch”中,它显示了2342个节点。但是当我从 getDagsFromRequest2() 函数返回到这部分代码时,调试器说“CXX0017:错误:找不到符号“dags””。怎么可能?
您还可以从我的 Visual Studio 调试集中看到此屏幕截图。
可能是什么问题?
非常感谢
【问题讨论】:
-
我认为这只是调试的问题(可能是发布版本的原因),它不会影响应用程序的行为。
-
那里可能存在内存泄漏。首先为指针分配内存,然后覆盖指针以指向其他内存。
-
@DavideChicco.it 不,它应该在调试中。但我认为构建模式应该只有两个选项 - 发布和调试(我从未见过 Debug-x64 的选项)。同样,这是您的代码编译时的调试器问题
标签: c++ visual-studio debugging 64-bit 32bit-64bit