JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.3:使用 dbx 调试程序     Oracle Solaris Studio 12.3 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  dbx 入门

2.  启动 dbx

3.  定制 dbx

4.  查看和导航到代码

5.  控制程序执行

6.  设置断点和跟踪

7.  使用调用堆栈

8.  求值和显示数据

9.  使用运行时检查

10.  修复并继续

11.  调试多线程应用程序

12.  调试子进程

13.  调试 OpenMP 程序

14.  处理信号

15.  使用 dbx 调试 C++

16.  使用 dbx 调试 Fortran

调试 Fortran

当前过程和文件

大写字母

dbx 会话样例

运行 dbx 会话样例

调试段故障

使用 dbx 找出问题

定位异常

跟踪调用

处理数组

Fortran 95 可分配数组

显示内函数

显示复数表达式

显示区间表达式

显示逻辑运算符

查看 Fortran 95 派生类型

指向 Fortran 95 派生类型的指针

面向对象的 Fortran

可分配的标量类型

17.  使用 dbx 调试 Java 应用程序

18.  在机器指令级调试

19.  将 dbx 与 Korn Shell 配合使用

20.  调试共享库

A.  修改程序状态

B.  事件管理

C.  宏

D.  命令参考

索引

调试段故障

如果程序出现段故障 (SIGSEGV),便会引用其可用内存外的内存地址。

导致段故障的最常见原因:

使用 dbx 找出问题

可使用 dbx 找到出现段故障的源代码行。

使用程序来生成段故障:

demo% cat WhereSEGV.f
    INTEGER a(5)
    j = 2000000
    DO 9 i = 1,5
        a(j) = (i * 10)
9    CONTINUE
    PRINT *, a
    END
demo%

可使用 dbx 找到 dbx 段故障的行号:

demo% f95 -g -silent WhereSEGV.f
demo% a.out
Segmentation fault
demo% dbx a.out
Reading symbolic information for a.out
program terminated by signal SEGV (segmentation violation)
(dbx) run
Running: a.out
signal SEGV (no mapping at the fault address)
    in MAIN at line 4 in file "WhereSEGV.f"
    4                   a(j) = (i * 10)
(dbx)