在Linux系统中,进行进程调试并快速定位问题是一项重要的技能。以下是一些常用的技巧和工具,可以帮助你更有效地进行进程调试:
ps
命令ps aux | grep <process_name>
ps -p <pid> -o pid,ppid,cmd,%cpu,%mem
top
或htop
top
htop # 需要安装
top -o %CPU
top -o %MEM
strace
strace -p <pid>
strace -p <pid> -o trace.log
gdb
gdb -p <pid>
break main
run
step
next
lsof
lsof -p <pid>
perf
perf record -g -p <pid>
perf report
dmesg
dmesg | grep <keyword>
journalctl
journalctl -u <service_name>
journalctl -p err -xb
coredump
ulimit -c unlimited
# 运行程序,触发崩溃
gdb <executable> core
valgrind
valgrind --leak-check=full ./your_program
tcpdump
或wireshark
tcpdump -i eth0 -p <pid>
wireshark -i eth0 -k -i <pid>
htop
的插件htop
的插件来增强功能:sudo apt-get install htop-plugins
htop -P <pid>
systemd-coredump
journalctl --unit=<service_name> --core-dump
perf top
perf top -p <pid>
perf script
perf.data
文件:perf script -i perf.data
通过结合使用这些工具和技术,你可以更全面地了解进程的行为,快速定位并解决各种问题。记得在调试过程中保持耐心,并逐步深入分析。