在GDB中设置断点

6

我有一个返回指针的函数:

static void *find_fit(size_t asize);

我想在gdb中设置断点,但是当我输入这个函数名时,会出现以下错误之一:
break *find_fit
Function "*find_fit" not defined

或者
break find_fit
Function "find_fit" not defined

我可以轻松地在返回指针以外的东西的函数上设置断点,但是当函数确实返回指针时,gdb似乎不想在其上停下来。有人知道发生了什么吗?谢谢!

抱歉。C++ kkkkkkkkkkkkkk - AndroidDev
1个回答

4
似乎由于某种原因,gdb没有正确处理C++名称修饰。通常情况下,您不需要做任何事情就可以正常工作。您可以尝试使用show language。通常设置为auto。您也可以尝试使用set language c++手动设置。
为了测试,您只需输入:
b 'find<tab>

(that's the tab character, not the characters "<tab>") ,并且它应该尝试为您自动完成函数的名称。在C ++中,您需要参数类型才能知道函数,但这并不完全符合您看到的情况,因为如果您给gdb一个没有参数的函数名称,它通常会做正确的事情或提示您要使用哪个版本的函数。您没有看到这两者中的任何一种情况。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接