Oracle® Solaris Studio 12.4:数值计算指南

退出打印视图

更新时间: 2015 年 1 月
 
 

4.4 查找异常

找出异常发生的位置的一种方法是在整个程序中各个点处测试异常标志。但是要用这种方法精确地隔离异常需要很多测试并且会产生巨大成本。

用来更方便的确定异常的发生位置的方法就是启用它的陷阱。当发生启用了陷阱的异常时,操作系统将通过发送 SIGFPE 信号来通知该程序。请参见 signal(5) 手册页。因此,通过启用对异常的捕获,并可通过以下方法来确定异常的发生位置:运行调试器并停止接收 SIGFPE 信号,或者建立 SIGFPE 处理程序以打印在其中发生了异常的指令的地址。请注意,必须针对异常启用捕获才能生成 SIGFPE 信号。如果在禁用捕获时发生异常,系统会设置相应的标志,并使用Table 4–1 中指定的缺省结果继续执行程序,但不会发送任何信号。