Sun Studio 12:使用 dbx 调试程序

断点事件规范

断点是操作的发生位置,程序在该位置停止执行。下面是断点事件的事件规范。

in function

已进入函数,并且即将执行第一行。序进程后的第一个可执行代码用作实际断点位置。它可能是要初始化的局部变量所在的那一行。如果是 C++ 构造函数,在执行了所有基类构造函数后,将停止执行。如果使用 -instr 修饰符(请参见-instr),则它是即将执行的函数的第一个指令。function 规范可以接受形式参数签名,以支持重载的函数名或模板实例规范。例如:


 stop in mumble(int, float, struct Node *)

注 –

不要将 in function-in function 修饰符混淆。


at [filename: ]line_number

指定行即将被执行。如果指定 filename,则即将执行指定文件中的指定行。文件名可以是源文件名或目标文件名。尽管不要求使用引号,但文件名中包含特殊字符时需要使用。如果指定行在模板代码中,则会在该模板的所有实例上放置断点。

at address_expression

给定地址处的指令即将被执行。此事件只能与 stopi 命令(请参见stopi 命令)或 -instr 事件修饰符(请参见-instr)结合使用。

infunction function

对于所有名为 function 的重载函数或其所有模板实例化,等效于 in function

inmember function inmethod function

对于每个类,等效于 in function 或名为 function 的成员函数。

inclass classname [-recurse | -norecurse]

对于所有是 classname 的成员但不是 classname 的任何基类的成员函数,等效于 in function-norecurse 是缺省值。如果指定 -recurse,则包括基类。

inobject object-expression [-recurse | -norecurse]

调用了对由 object-expression 表示的地址处的特定对象调用的成员函数。stop inobject ox 大致等效于以下命令,但与 inclass 不同,此处,动态类型的 ox 的基类包括在内。缺省值是 -recurse。如果指定 -norecurse,则不包括基类。


stop inclass dynamic_type(ox) -if this==ox