Linux core dump的调试技

 

Linux core dump的调试技术

2010-06-02 09:31 zhangzhi baidu 我要评论(0) 字号: T | T
一键收藏,随时查看,分享好友!

dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。 以下是Linux core dump的调试技术

AD:


    有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的.以下是我们详细的对Linux core dump的调试技术进行的介绍,想能帮助大家


    1.Linux core dump 前言:
    有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的.
    但这不像编译错误一样会提示到文件->行, 而是没有任何信息, 使得我们的调试变得困难起来.


    2. Linux core dumpgdb:
    有一种办法是, 我们用gdb的step, 一步一步寻找.
    这放在短小的代码中是可行的, 但要让你step一个上万行的代码, 我想你会从此厌恶程序员这个名字, 而把他叫做调试员.
    我们还有更好的办法, 这就是core file.


    3. Linux core dumpulimit:
    如果想让系统在信号中断造成的错误时产生core文件, 我们需要在shell中按如下设置:
    #设置core大小为无限
    ulimit -c unlimited
    #设置文件大小为无限
    ulimit unlimited


    这些需要有root权限, 在ubuntu下每次重新打开中断都需要重新输入上面的第一条命令, 来设置core大小为无限.


    4. Linux core dump用gdb查看core文件:
    下面我们可以在发生运行时信号引起的错误时发生core dump了.
    发生core dump之后, 用gdb进行查看core文件的内容, 以定位文件中引发core dump的行.
    gdb [exec file] [core file]
    如:
    gdb ./test test.core
    在进入gdb后, 用bt命令查看backtrace以检查发生程序运行到哪里, 来定位core dump的文件->行.


    5.要怎麽才不会让 core 文件出现?
    如果用的是tcsh的话, 以试著在 .tcshrc 里加一行:
    limit coredumpsize 0
    如果用的是bash的话, 在/etc/profile里加上(或者修改)一条:
    ulimit -c 0

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值