C++ gdb:在c++;
假设以下类别:C++ gdb:在c++;,c++,gdb,C++,Gdb,假设以下类别: class a { public: int getA(int a){ return 5; } int getA(int a, int b){ return 6; } }; int main(){ a cA; std::cout << cA.getA(5) << std::endl; return 0; } 但这只在第一个函数上设置了一个b,如何在第二个函数上设
class a {
public:
int getA(int a){
return 5;
}
int getA(int a, int b){
return 6;
}
};
int main(){
a cA;
std::cout << cA.getA(5) << std::endl;
return 0;
}
但这只在第一个函数上设置了一个
b
,如何在第二个函数上设置一个b
(当然不使用行号)在main()中再添加一行:
“2个位置”是gdb告诉您它现在为两个重载函数都注入了断点。单步执行代码将验证这一点
如果某个符号解析为使重载函数相乘,则b
命令会在每个函数上设置一个断点
但是,因为第二个重载函数是内联函数,并且在您的原始代码中从未调用过它,所以gcc甚至没有编译它,gdb
也没有设置断点。b a::getA(int,int)
应该可以做到这一点。即使是已经工作的,也应该用ba::getA(int)
替换
你自己试试看
b a::getA
std::cout << cA.getA(2,3) << std::endl;