Linux下调试总结

Linux下调试总结

段错误调试

感觉Linux环境下段错误的产生原因及调试方法小结写的不错,列举了几个主要的调试方式。有几点补充:

1. 在使用core dump的时候,关于打开/关闭生成core文件的命令:

    + `ulimit -c unlimited`使core文件大小没有限制。
    + `ulimit -c 0` 限制core文件大小为0,即不产生core文件。

2. 有时候core 提示的行并不是正在的问题所在,可以进一步使用`dmesg`来查看发生错误的地址。

多线程调试

linux gdb-多线程调试

  1. 有时候会有线程进不去的情况,在使用info threads时候后面的详细信息是 xxxx(线程id) in ??的情况,使用thread threadno可以切换线程但是下一步执行就不行了。虽然没搞清楚为啥,但是 可以试试在线程函数设置一个断点,或者set scheduler-locking off关闭系统调度锁定。

多进程调试

GDB 调试多进程或者多线程应用只适合多进程调试。

查看进程或线程(LWP,轻量级进程)

  1. ps -fe | grep a.out 查看a.out的进程号。
  2. ps -Lf pid 查看进程pid的所有线程。
  3. 进程状态表示:

    D 不可中断 Uninterruptible sleep (usually IO)
    R 正在运行,或在队列中的进程
    S 处于休眠状态
    T 停止或被追踪
    Z 僵尸进程
    W 进入内存交换(从内核2.6开始无效)
    X 死掉的进程
    < 高优先级
    N 低优先级
    L 有些页被锁进内存
    s 包含子进程
    加号 位于后台的进程组
    l 多线程,克隆线程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值