Oracle® Solaris Studio 12.4:使用 dbx 调试程序

退出打印视图

更新时间: 2015 年 1 月
 
 

在函数中设置断点

可以使用 stop in 命令在函数中设置断点。

(dbx) stop in function

In Function 断点用于在过程或函数中第一个源代码行的开头处暂停程序执行。

    dbx 应当能够确定您正在引用哪个函数,但下列情况除外:

  • 只通过名称来引用一个重载的函数。

  • 引用以 ` 开头的函数。

  • 按函数的链接程序名称(在 C++ 中为改编名称)引用函数。在这种情况下,如果您在名称前添加 # 前缀,则 dbx 将接受该名称。有关更多信息,请参见链接程序名

假设有下面一组声明:

int foo(double);
int foo(int);
int bar();
class x {
   int bar();
};

要在非成员函数处停止,以下命令将在全局 foo(int) 处设置断点:

stop in foo(int)

要在成员函数中设置断点:

stop in x::bar()

在以下命令中,dbx 无法确定所指是全局函数 foo(int) 还是全局函数 foo(double),因而会显示重载菜单以便确认。

stop in foo

如果键入:

stop in `bar

dbx 便无法确定所指是全局函数 bar() 还是成员函数 bar(),因而会显示重载菜单。


注 -  如果成员名称是唯一的(如 unique_member),则使用 stop in unique_member 便已足够。如果成员名称不具有唯一性,则可以使用 stop in 命令并响应重载菜单,以指定您所指的成员。

有关指定 in-function 事件的更多信息,请参见in 事件规范