利用strace诊断程序错误

最近在调试程序的时候接触到了strace这个工具。strace 是一个十分强大的调试/分析/诊断工具,这里 有一篇详细的介绍。

 

今天在配置lighty + web.py的时候遇到了问题,按照http://webpy.org/cookbook/fastcgi-lighttpd/ 进行配置后lighty无法正常启动,从lighty的error log看是加载处理fcgi的python模块时出了问题,但是不知道具体原因。尝试了几次以后决定用strace试一试:

 

sudo strace -fF /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf -o log

 

从strace的输出里看到了这样的错误:

[pid  3125] write(2, "ImportError", 11) = 11
[pid  3125] write(2, ": ", 2)           = 2
[pid  3125] write(2, "No module named flup.server.fcgi", 32) = 32
[pid  3125] write(2, "/n", 1)           = 1
[pid  3125] rt_sigaction(SIGINT, {SIG_DFL, [], 0}, {0x810fde0, [], 0}, 8) = 0
[pid  3125] exit_group(1)               = ?
Process 3125 detached

 

这样原因就清楚了,没有装python-flup,sudo apt-get install python-flup后重启lighty,一切ok。strace小试牛刀 :)

你可能感兴趣的:(python,Module,工具,web.py)