如何使用gdb打破基类的构造函数?

zou*_*yjs 3 c++ gdb breakpoints

我的主要cpp文件是:

class UnifiedDirListQuery : public UnifiedQuery{
public:
    UnifiedDirListQuery(){
        //do something-------------line 12
    }
}
//other code

int main( void ){
    UnifiedQuery *query = new UnifiedDirListQuery();//-----line 56
    //do something
    delete query;
}
Run Code Online (Sandbox Code Playgroud)

并且分别UnifiedQueryunified.h和中声明和定义unified.cpp.当我在gdb中调试这个程序时:

gdb: b 56
gdb: r
gdb: s
Run Code Online (Sandbox Code Playgroud)

程序跳转到第12行.如果例如定义了ctor,如何转到unified.cpp并跳转到Ctor基类.UnifiedQueryunified.cpp : line 25

更新

对于答案break UnifiedDirListQuery::UnifiedDirListQuery,gdb抱怨说:

(gdb) b UnifiedDirListQuery::UnifiedDirListQuery
[0] cancel
[1] all
?HERE
?HERE
> 1
Note: breakpoint -1 (disabled) also set at pc 0x0.
Breakpoint 1 at 0x0
Note: breakpoints -1 (disabled) and 1 also set at pc 0x0.
Breakpoint 2 at 0x0
warning: Multiple breakpoints were set.
Use the "delete" command to delete unwanted breakpoints.
(gdb) r
Starting program: /...(the path)/src/base/unified_album_list.cgi
Warning:
Cannot insert breakpoint 1.
Error accessing memory address 0x0: Input/output error.
Run Code Online (Sandbox Code Playgroud)

对于答案b file:line,gdb只是忽略它并不停地执行程序.顺便说一句:实际上ctor的定义是在一个名为unified.himplicity 的文件中,因为它位于头文件中而被声明为内联函数.

arn*_*rne 5

你也可以

break UnifiedDirListQuery::UnifiedDirListQuery
Run Code Online (Sandbox Code Playgroud)

另请注意,gdb具有制表符完成功能,因此您无需键入所有内容.