C++ C++;:断点不起作用

C++ C++;:断点不起作用,c++,debugging,gcc,gdb,C++,Debugging,Gcc,Gdb,这可能是一个非常基本的问题。然而,我在网上找不到任何答案 我有一个代码需要调试,用C++编写。对于这段代码,出于兼容性原因,我需要使用GCC4.1.2,我使用的是GDB6.6-45。我用-g-Wall-O0标志编译了代码,以确保可以用GDB调试代码 我的问题是,无论我在哪里设置断点,都不会碰到断点。此外,在运行结束时,我收到这样一条消息:“如果没有要调试的进程,您就不能这样做” 从消息的声音来看,我想我错过了一件非常琐碎的事情。然而,我不明白 任何帮助都将不胜感激 编辑: 我正在使用的平台是Vi

这可能是一个非常基本的问题。然而,我在网上找不到任何答案

<>我有一个代码需要调试,用C++编写。对于这段代码,出于兼容性原因,我需要使用GCC4.1.2,我使用的是GDB6.6-45。我用
-g-Wall-O0
标志编译了代码,以确保可以用GDB调试代码

我的问题是,无论我在哪里设置断点,都不会碰到断点。此外,在运行结束时,我收到这样一条消息:“如果没有要调试的进程,您就不能这样做”

从消息的声音来看,我想我错过了一件非常琐碎的事情。然而,我不明白

任何帮助都将不胜感激

编辑

我正在使用的平台是VirtualBox上的Fedora8。我之所以在VirtualBox上工作,是因为我不足以在不破坏最新版本Fedora 20的情况下正确安装较旧版本的GCC(4.1.2)

根据GDB输出(非常基本):

上面显示的就是我的全部。要设置断点,我执行了类似的操作:

break main
break System::function_name
break System::line_number

当我运行
info breakpoints
时,断点会显示正确的cpp文件和行号或函数名,并将enabled标志设置为yes。

如果可能,尽量避免使用-O标志,只使用-g-Wall。我在旧版本中看到了-O标志的一些问题。但我不确定他们是否也坚持这样做。试试看

了解您所在的平台可能有助于提供答案。显示您的gdb会话的输出。啊,好的。我来编辑。我不知道该怎么问这个问题。你如何设置断点?从虚拟框上的shell中,键入
echo$shell
,然后检查它提供给你的文件是否确实存在。实际上,我最初没有
-O
标志。为了解决这个问题,我添加了这个标志。结果是一样的。
break main
break System::function_name
break System::line_number