简单记录下常用的调试工具,以及常用的方法。
gdb
常用命令用法
1 | gdb <program> <corefile> #调试core dump file |
这些命令大概可以覆盖90%以上的场景。
其他辅助工具
lsof
如果直接加目录文件名,就是查看读写目录的进程情况。
常用参数
1 | -p <pid> 列出进程文件读写情况 |
ps
一般只用ps -efx
strace
一般只用strace -Ttt
定位程序耗时
gcore
gcore <pid>
对正在执行的进程生成core文件。
pstack
pstack <pid>
查看正在执行进程的栈。
ipcs
直接使用即可。
iostat
watch -n 1 iostat
或者 iostat 1
每秒统计一次IO信息。
vmstat
直接使用即可。
valgrind
这个工具非常复杂。入门可以看下边这2个:
- https://stackoverflow.com/questions/5134891/how-do-i-use-valgrind-to-find-memory-leaks。
- https://web.stanford.edu/class/archive/cs/cs107/cs107.1212/resources/valgrind.html
手册:https://valgrind.org/docs/manual/manual.html
htop
升级版的top,可视化做的好。尤其可以尝试tree模式(按F5),显示进程树关系。
iotop
类top工具,直接打开用就可以。但是感觉不太好用。。。