Code ::阻止调试器失败

时间:2013-10-27 22:43:25

标签: c++ debugging ubuntu codeblocks

在解释我的问题之前:
我的操作系统是Ubuntu 12.04 LTS 32位,4GB RAM 我的IDE是Code :: Blocks 12.11(我和10.05有同样的问题)
我正在使用带有-g标志的GNU GCC编译器和-std = c ++ 0x标志。

尝试调试此程序时:

using namespace std;

#include<iostream>

int main(){

int n=10;

for(int i=1;i<=n;i++){
    int ax=i;
    while(ax) ax--;
    cout<<i;
}


return 0;
}

如果我尝试“运行到光标”命令或尝试使用断点,我无法发生任何事情。他们只是被跳过,我的程序完成运行。

这是我在调试器日志中得到的:

建立以确保来源是最新的 选择目标:
发布
添加源目录:/ home / classius / CodeBlocks / Dr /
添加源目录:/ home / classius / CodeBlocks / Dr /
添加文件:/ home / classius / CodeBlocks / Dr / bin / Release / Dr
将目录更改为:/ home / classius / CodeBlocks / Dr /。
设置变量:LD_LIBRARY_PATH =。: 启动调试器:/ usr / bin / gdb -nx -fullname -quiet -args / home / classius / CodeBlocks / Dr / bin / Release / Dr
做过
注册新类型:wxString
注册的新类型:STL String 注册新类型:STL矢量
设置断点
从/home/classius/CodeBlocks/Dr/bin/Release/Dr...(找不到调试符号)读取符号...完成。
调试器名称和版本:GNU gdb(Ubuntu / Linaro 7.4-2012.04-0ubuntu2.1)7.4-2012.04
没有加载符号表。使用“file”命令 临时断点2(“/ home /classius/CodeBlocks/Dr/main.cpp:10”)待定。
[劣质1(过程13381)正常退出]
调试器以状态0

结束

如果有人想提出一个暗示使用终端的解决方案,请使用您可以找到的最无聊的条款进行操作!
PS:如何在提问时在堆栈溢出上添加分隔线?(已解决 - 谢谢!)

2 个答案:

答案 0 :(得分:0)

  

从/home/classius/CodeBlocks/Dr/bin/Release/Dr...(no   发现调试符号)......完成。

这意味着您在编译期间没有-g选项。

更新:

file /home/classius/CodeBlocks/Dr/bin/Release/Dr 

/home/classius/CodeBlocks/Dr/bin/Release/Dr: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x7da8c5cff4af5082d82eecc3ede59a5920b253a0, stripped 

所以它被'剥离',这意味着没有真正使用-g选项。您可以重新检查编译器配置或尝试构建调试版本?

答案 1 :(得分:0)

在设置菜单中,选择调试器,然后选择gdb-cdb标签,然后重置为默认值