为类成员函数设置断点不成功

xis*_*xis 7 c++ gdb

我有一个类看起来像这样:

namespace madoka
{
class polarizable_sites
{
public:
void resize(const size_t dim_);
void clear(void);
};
}
Run Code Online (Sandbox Code Playgroud)

在gdb中,我可以设置明确的断点

b 'madoka::polarizable_sites::clear()'
Run Code Online (Sandbox Code Playgroud)

但是,对于成员函数调整大小,a

b 'madoka::polarizable_sites::resize(const size_t)'
Run Code Online (Sandbox Code Playgroud)

不起作用.GDB报告错误:

类madoka :: polarizable_sites没有任何名为resize的方法(const size_t)提示:尝试'madoka :: polarizable_sites :: resize(const size_t)'或'madoka :: polarizable_sites :: resize(const size_t)'(注意引导单引号.)

我想知道为什么因为功能样式是由TAB自动完成的.

顺便说一句:我正在使用GDB

GNU gdb(Ubuntu/Linaro 7.2-1ubuntu11)7.2版权所有(C)2010 Free Software Foundation,Inc.

用编译器'

g ++(Ubuntu/Linaro 4.5.2-8ubuntu4)4.5.2版权所有(C)2010 Free Software Foundation,Inc.

Cod*_*der 3

可能该函数是内联的。如果它是 GDB 语法中的 x86 代码,请尝试添加__asm int 3并遍历代码。这个技巧在调试 MSVC x86 代码时节省了我很多时间。

  • 这可能适用于 GCC `asm("int $0x3");` 请记住,此断点将被编译,并且仅当您无法在内联或其他优化代码上中断时才应使用。它将导致代码更改并可以显示/隐藏 Heisenbug。 (2认同)