我们在调试程序时经常出现没办法直接跟踪的情况:在没有调试环境的机器上运行;出现的几率不是很高;原来出现的问题在debug状态下不出现等等情况,常常使得并不算新手的程序员不知所措,郁郁终日,项目一拖再拖。幸好Window和Linux都提供了生成dump文件的方法。

       所谓dump文件是把进程或内核地址空间的状态(堆、栈、静态存储器、代码段等等)保存在一个文件中,以供调试分析之用。

1.如何生成dump文件

Windows环境下:

     a) 设置在某程序crash时自动生成dump:下载和安装DubugDiag,配置需要监视的进程名称,当对应进程crush时会自动生成dump文件;

    b)如果一个进程并没有crash,打开task manager,在进程选项卡中选定需要调试的进程,点右键,选Create dump file,即可生成。

Linux环境:

    a)  先运行

       ulimit -c unlimited

      当程序运行crash时会自动生成dump。

    b) 如果一个进程并没有crash,运行

        gcore -o filename pid

       即可生成dump。


2. Dubug dump文件

在Windows环境可以用Visual Studio直接打开dump文件,或者使用Debug Diag的Analysis功能。

在Linux下使用

gdb <executeablefile> <dumpfile>来打开调试。


转自:http://blog.sina.com.cn/s/blog_7022cf220100ru5j.html

Logo

更多推荐