我有一个返回指针的函数:
static void * find_fit(size_t asize);
我想在gdb中设置一个断点,但是当我输入这个函数名时,我得到以下错误之一:
break * find_fit函数“* find_fit”未定义
或
break find_fit函数“find_fit”未定义
我可以轻松地在返回指针之外的函数上设置断点,但是当函数确实返回指针时,gdb似乎不想在它上面打破。
有人看到发生了什么事吗?谢谢!
答案 0 :(得分:4)
听起来出于某种原因,gdb没有正确处理C ++名称。通常,您无需触摸任何内容即可实现此功能。您可以尝试show language
。通常它设置为auto
。您也可以尝试使用set language c++
手动设置它。
要进行测试,您只需输入
即可b 'find<tab>
(这是制表符,而不是字符“<tab>
”),它应该尝试为您自动填写函数的名称。在C ++中,您需要参数类型来了解函数,但这并不是100%适合您所看到的内容,因为如果您为gdb提供一个没有参数的函数名称,它通常会做正确的事情或提示您为你想要的功能的版本。你没有看到其中任何一个。