Oracle® Solaris Studio 12.4:dbxtool 教程

退出打印视图

更新时间: 2014 年 10 月
 
 

使用断点和步进

使用断点可以将程序停止在错误位置之前,并单步执行代码以查找何处出错。

如果您尚未取消停靠 "Output"(输出)窗口,请执行该操作。

您早先是从命令行运行的程序。通过在 dbxtool 中运行程序来重现错误。

  1. 在工具栏中单击 "Restart"(重新启动)按钮 image: 或在 "Debugger Console"(调试器控制台)窗口中键入 run

  2. 在 "Debugger Console"(调试器控制台)窗口中按回车键。

    警报框会提供有关 SEGV 的信息。

    image:显示 SEGV 的 “Signal Caught“(捕获的信号)警报窗口
  3. 在警报框中,单击 "Discard and Pause"(放弃并暂停)。

    "Editor"(编辑器)窗口会再次在 Interp::find() 中突出显示对 strcmp() 的调用。

  4. 在工具栏中单击 "Make Caller Current"(使调用方成为当前调用方)按钮 image: 以转至您先前在 Interp::dispatch() 中看到的未知代码。

  5. 在下一节,您将在调用 find() 之前一个位的位置设置断点,这样您就可以单步执行代码以了解为何出错。