2014-09-13 41 views
0

当我在调试器中右键单击一个变量时,我收到上面的错误消息,引用地址x7fffffffe01e(每次)。如果我只是输入参考,也会发生。无法从eclipse中的指定地址加载内存(C++/CDT)

我使用这个错误,还是有错误?我尝试阅读关于使用内存监视器的eclipse文章,但我怀疑它是为Java环境而不是C++编写的。

C/C++ GCC交叉编译器支持1.1:

我对三星NP900X3E的Ultrabook

CDT Linux Mint的15(3.11.0-12泛型)使用Elipse 3.8.1 .0.dist org.eclipse.cdt.build.crossgcc.feature.group Eclipse CDT C/C++ GNU工具链构建支持8.1.1.dist org.eclipse.cdt.gnu.build.feature.group Eclipse CDT C/C++ GNU工具链调试支持7.1.1.dist org.eclipse.cdt.gnu.debug.feature.group Eclipse CDT C/C++内存视图增强2.2.0.dist org.eclipse.cdt.debug.ui.memory.feature .grou p Eclipse CDT C/C++单元测试支持7.0.0.dist org.eclipse.cdt.testsrunner.feature.feature.group Eclipse CDT CDT通用GDB支持7.0.0.dist org.eclipse.cdt.gdb.feature。组Eclipse CDT的 CDT展台框架1.0.0.dist org.eclipse.cdt.visualizer.feature.group Eclipse CDT的

+1

你是否在命令行编译你的应用程序(使用'g ++ -Wall -g',也许是'Makefile')?你读过[gdb](https://www.gnu.org/software/gdb/)的文档吗?你是否在终端上运行'gdb'(可能是'gdb -tui')? Eclipse中可能你的工作实际上是复杂.... – 2014-09-13 10:29:24

+0

我尝试的命令行: (GDB)P&R $ 2 =(短期*)0x7fffffffe09ea (GDB)X 0x7fffffffe09e 0x7fffffffe09e:\t 0x00000007 并且还从Eclipse - CDT的GDB控制台: X&R 0x7fffffffe01e:\t 0x00000007 但是当我尝试显示器,它说,它无法装入内存地址 我不知道如果我正确地做这个,虽然。这就是为什么我问,我猜:)我从内部编译: g ++ -O0 -g3 - main.d“-o”main.o“”../main.cpp“ g ++ -o”tests“./main.o – lash 2014-09-15 05:55:38

回答

0

这里面有一个坏的值指针(如因为它是未初始化的),当你解引用它时(所以地址在进程的地址空间中是无效的)。如果它不是一个指针而是一个局部变量,这意味着你损坏了你的call stack。它也可能指示其他一些memory corruption

尝试使用也valgrind

因此,有在你的程序错误。阅读关于undefined behavior