Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ gdb:在c++;_C++_Gdb - Fatal编程技术网

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;