我有一个返回指针的函数:
static void*find_fit(size_t asize);
我想在gdb中设置一个断点,但是当我输入这个函数名时,我得到以下错误之一:
break*find_fit函数"*find_fit"未定义
要么
break find_fit函数"find_fit"未定义
我可以轻松地在返回指针以外的函数的函数上设置断点,但是当函数确实返回指针时,gdb似乎不想在它上面打破.
有谁看到发生了什么?谢谢!
听起来由于某种原因,gdb 无法正确处理 C++ 名称修饰。通常,您无需接触任何东西即可使其发挥作用。你可以试试show language。通常它被设置为auto。您也可以尝试使用 手动设置set language c++。
要测试,您只需输入
b 'find<tab>
Run Code Online (Sandbox Code Playgroud)
(这是制表符,而不是字符“ <tab>”),它应该尝试为您自动完成函数的名称。在 C++ 中,您需要参数类型来了解该函数,但这并不 100% 符合您所看到的,因为如果您为 gdb 提供一个不带参数的函数名称,它通常会做正确的事情或提示您执行哪个操作您想要的功能的版本。你没有看到其中任何一个。
| 归档时间: |
|
| 查看次数: |
4495 次 |
| 最近记录: |