内存相关调试(1)

  1. 查看文件描述符是否关闭,持续增加
    1.1. ls /proc/pid/fd/ -l 查看文件描述是否增加
    1.2. lsof -p pid 查看文件描述符FD是否增加

    	lsof: WARNING: can't stat() fuse file system /root/.cache/doc
    	      Output information may be incomplete.
    	lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /root/.cache/gvfs
    	      Output information may be incomplete.
    	COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
    	a.out   127505 jony  cwd    DIR   0,60     4096       4 /mnt/hgfs/ubuntu20/test_code
    	a.out   127505 jony  rtd    DIR    8,5     4096       2 /
    	a.out   127505 jony  txt    REG   0,60    16792       9 /mnt/hgfs/ubuntu20/test_code/a.out
    	a.out   127505 jony  mem    REG    8,5  2029224 1841671 /usr/lib/x86_64-linux-gnu/libc-2.31.so
    	a.out   127505 jony  mem    REG    8,5   191472 1841455 /usr/lib/x86_64-linux-gnu/ld-2.31.so
    	a.out   127505 jony    0u   CHR  136,1      0t0       4 /dev/pts/1
    	a.out   127505 jony    1u   CHR  136,1      0t0       4 /dev/pts/1
    	a.out   127505 jony    2u   CHR  136,1      0t0       4 /dev/pts/1
    	a.out   127505 jony    3w   REG   0,60        0      10 /mnt/hgfs/ubuntu20/test_code/0.txt
    	a.out   127505 jony    4w   REG   0,60        0      11 /mnt/hgfs/ubuntu20/test_code/1.txt
    	a.out   127505 jony    5w   REG   0,60        0      12 /mnt/hgfs/ubuntu20/test_code/2.txt
    	a.out   127505 jony    6w   REG   0,60        0      13 /mnt/hgfs/ubuntu20/test_code/3.txt
    	a.out   127505 jony    7w   REG   0,60        0      14 /mnt/hgfs/ubuntu20/test_code/4.txt
    	a.out   127505 jony    8w   REG   0,60        0      15 /mnt/hgfs/ubuntu20/test_code/5.txt
    	a.out   127505 jony    9w   REG   0,60        0      16 /mnt/hgfs/ubuntu20/test_code/6.txt
    	a.out   127505 jony   10w   REG   0,60        0      17 /mnt/hgfs/ubuntu20/test_code/7.txt
    	a.out   127505 jony   11w   REG   0,60        0      18 /mnt/hgfs/ubuntu20/test_code/8.txt
    	a.out   127505 jony   12w   REG   0,60        0      19 /mnt/hgfs/ubuntu20/test_code/9.txt
    
  2. 查看进程停在什么位置

// 观察程序栈状态  
$ sudo cat /proc/28593/stack 
[sudo] password for jony: 
[<0>] do_wait+0x1cd/0x230
[<0>] kernel_waitid+0x13a/0x1d0
[<0>] __do_sys_waitid+0x109/0x130
[<0>] __x64_sys_waitid+0x25/0x30
[<0>] do_syscall_64+0x38/0x90
[<0>] entry_SYSCALL_64_after_hwframe+0x44/0xa9

// 查看进程停留位置
$ sudo cat /proc/28593/wchan 
do_wait

t$ ps -p 28593-o pid,wchan,cmd
    PID WCHAN  CMD
  28593 do_wai ./a.out

从上述可以发现, 程序停在 do_wait处,/proc/28593/stack 相比于 /proc/28593/wchan信息更详细。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值