我在我的C++程序中使用GDB时遇到问题。我想为我的类成员函数设置一个断点,我不确定如何执行它的语法。我的程序现在正在运行,我只是想学习使用GDB。我的问题是我在线上找到的所有信息只能处理main()文件,没有其他函数或类,如果它们涉及类,它只能使用带有void return语句的函数。成员函数的C++ GDB断点
我有一个二叉搜索树类。我想在程序中的一个函数中设置一个断点。 这是我的头文件的部分。
class BST
{
BST()
...
private:
int add((BST * root, BST *src);
}
我正在telnet到一个命令行linux服务器的学校。 我可以使用g ++ -g * .cpp(还有其他文件可以正常工作)使用我的程序运行GDB,并将文件保存为a.out。 我运行GDB与
gdb ./a.out
我进入GDB。我可以得到虚空显示功能只是
b BST::disp_block()
细破发点,但我怎么用add函数我试图
b BST::int add(BST*, BST *)
b int BST::add(BST*, BST *)
b BST::add(BST*, BST *)
,我甚至与参数名
试图做到这一点b BST::int add(BST * root, BST * src)
b int BST::add(BST * root, BST * src)
b BST::add(BST * root, BST * src)
,我不断收到错误
Function "____" not defined.
Make break point pending on future shared library load? (y or [n])
如何为这个成员函数设置一个中断点?我假设观察点将是相同的格式,如果不是,你是否也可以解释。
在没有重载的情况下,或者如果你想在所有的重载中断开,'b BST :: add'。不需要论证。请注意,如果您的类位于命名空间中,则还需要包含命名空间。 –
也可以通过文件名:linenumber在gdb中设置断点。如果你的函数在bst.c中,在第25行,命令是: (gdb)bst.c:25 – JGroven