在GDB中设置断点

时间:2011-12-07 03:47:22

标签: gdb

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

static void * find_fit(size_t asize);

我想在gdb中设置一个断点,但是当我输入这个函数名时,我得到以下错误之一:

break * find_fit函数“* find_fit”未定义

break find_fit函数“find_fit”未定义

我可以轻松地在返回指针之外的函数上设置断点,但是当函数确实返回指针时,gdb似乎不想在它上面打破。

有人看到发生了什么事吗?谢谢!

1 个答案:

答案 0 :(得分:4)

听起来出于某种原因,gdb没有正确处理C ++名称。通常,您无需触摸任何内容即可实现此功能。您可以尝试show language。通常它设置为auto。您也可以尝试使用set language c++手动设置它。

要进行测试,您只需输入

即可
b 'find<tab>

(这是制表符,而不是字符“<tab>”),它应该尝试为您自动填写函数的名称。在C ++中,您需要参数类型来了解函数,但这并不是100%适合您所看到的内容,因为如果您为gdb提供一个没有参数的函数名称,它通常会做正确的事情或提示您为你想要的功能的版本。你没有看到其中任何一个。