使用gdb在Ubuntu上使用Code :: Blocks调试问题

时间:2009-10-24 22:15:53

标签: c++ debugging ubuntu gdb codeblocks

我刚刚开始编程C ++,首先是ms Visual C ++,然后是Code :: Blocks。

问题是在我的计算机上,运行Ubuntu,Code :: Blocks“开箱即用”不会调试,即使是默认的“hello world”,它只是跳过所有断点并完成程序。

我有一台使用Sun的VirtualBox的虚拟化Windows机器,我放在那里的窗口的Code :: Blocks非常“开箱即用”!。

ubuntu上的程序,在我尝试调试时显示: 找不到名为“a / b / c”的命名空间,类,结构或联合的成员 其中a / b / c是我正在构建的程序的路径。

调试器日志中显示的内容:


建立以确保来源是最新的 建成功了 选择目标:
调试
添加源目录:/ home / arnau / Documents / UNI / compus / Code :: Blocks / opo /
添加源目录:/ home / arnau / Documents / UNI / compus / Code :: Blocks / opo /
添加文件:bin / Debug / opo
启动调试器:
完成了 注册新类型:wxString
注册新类型:STL String
注册新类型:STL矢量
设置断点
调试器名称和版本:GNU gdb 6.8-debian

找不到名为“/home/arnau/Documents/UNI/compus/Code::Blocks/opo/main.cpp:8”的命名空间,类,结构或联合的成员
提示:尝试'“/home/arnau/Documents/UNI/compus/Code::Blocks/opo/main.cpp:8或'”/ home / arnau / Documents / UNI / compus / Code :: Blocks / opo / main .cpp:8
(注意引用单引号。)
程序正常退出。
调试器以状态0

结束

感谢您的时间,我真的很感激。

Arnau,来自巴塞罗那

1 个答案:

答案 0 :(得分:4)

您对源目录的命名:.../Code::Blocks/...是最不幸的。

虽然UNIX允许文件名中的任何字符,但'/'NUL除外,使用':'是不明智的,因为那是PATH分隔符,你会无法添加例如/home/arnau/Documents/UNI/compus/Code::Blocks/opo的{​​{1}}。

PATH中,GDB还有两个含义 - 文件名和行号(或函数名称)之间的分隔符, ':' as范围指标(处理'::'所需)。

摘要:将C++目录重命名为"Code::Blocks",并且过上幸福的生活。