DVK*_*DVK 1 c++ gdb breakpoints
我在C++类中有两个方法如下:
class myClass {
public:
void operator()( string myString ) {
// Some code
}
void myMethod() { ... }
}
Run Code Online (Sandbox Code Playgroud)
对于常规方法,我可以简单地将GDB中的断点设置为:
b myClass::myMethod
Run Code Online (Sandbox Code Playgroud)
但是如何为第一种方法设置断点?
更新:
初始答案(b myClass :: operator())的建议不起作用:(
b myClass::operator()
Function "myClass::operator()" not defined.
Run Code Online (Sandbox Code Playgroud)
谢谢!
一样的.myClass::operator()(string)是一种常规方法.
如果你有几个重载operator()方法(例如const和非const版本),gdb应该提供设置断点的选择:
http://sunsite.ualberta.ca/Documentation/Gnu/gdb-5.0/html_node/gdb_35.html#SEC35
您可能必须确保operator()(string)实际编译该方法.
编辑:
我测试了以下文件test.cpp:
#include <string>
#include <iostream>
class myClass {
public:
void operator()( int i ) {
std::cout << "operator()";
}
void myMethod() {
std::cout << "myMethod";
}
};
int main() {
myClass c;
c(1);
c.myMethod();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译g++ test.cpp -o test,运行gdb test(版本GNU gdb 6.3.50-20050815(Apple版本gdb-1344)),键入start,然后才能设置断点.
b 'myClass::operator()(string)' 和
b myClass::operator()
都奏效了.
| 归档时间: |
|
| 查看次数: |
4212 次 |
| 最近记录: |