我有一个程序,我想通过在非默认构造函数中设置断点来调试,但我设置的断点永远不会被命中。下面是一个出现此问题的示例程序。在 main 函数中设置断点没有问题,但在 Domain.cpp 文件中设置的任何断点都会被忽略:
主要.cpp:
#include <iostream>
#include "Domain.h"
int main()
{
Domain y;
std::cout << y.x << std::endl; // <- No problem setting breakpoint here
return 0;
}
域.cpp:
#include "Domain.h"
Domain::Domain()
{
x = 4; // <- A breakpoint here is skipped
}
域.h:
#ifndef DOMAIN_H_
#define DOMAIN_H_
class Domain
{
public:
int x;
public:
Domain();
};
#endif /* DOMAIN_H_ */
但是,如果我将所有内容都放在一个文件中,则问题不存在:
Main2.cpp:
#include <iostream>
int main()
{
class Domain
{
public:
int x;
Domain()
{
x = 4; // <- No problem setting breakpoint here now!
};
};
Domain y;
std::cout << y.x << std::endl;
return 0;
}
为什么会这样?如何更改它以便在使用多个文件时能够设置断点?
我可以确认,当我在终端中手动运行调试器以及通过 Eclipse CDT 运行它时,断点都不起作用,在那里我得到了这个问题中讨论的相同错误,但显然从未得到回答:
我在用:
- 日食开普勒
- Mac OSX 10.8.4
- gdb 6.3.5(苹果版)
-O0
带有和-g3
标志的 gcc 4.2.1
请耐心等待我。我还在学习绳索。