【发布时间】:2016-03-04 19:09:52
【问题描述】:
我正在尝试检查在我的服务器上“挂起”的进程。我正在使用 gdb 像这样附加到进程:
gdb -p PID
在 gdb 中,我运行 bt 并得到以下信息:
(gdb) bt
#0 0x00007f57f4be73ba in __getpwuid_r (uid=4113672712, resbuf=0x7f57f531ce40, buffer=0x1 <error: Cannot access memory at address 0x1>, buflen=0,
result=0x7f57f531a048) at ../nss/getXXbyYY_r.c:198
#1 0x00007f5700000004 in ?? ()
#2 0x0000000000000060 in ?? ()
#3 0x0000000000000001 in ?? ()
#4 0x00007f5700000031 in ?? ()
#5 0x0000000000000000 in ?? ()
Cannot Access Memory Address 是导致此进程挂起的潜在原因吗?还是说软件已经退出,但还有一个正在运行的进程?
顺便说一句,这是一个 CasperJS 脚本。
【问题讨论】:
-
听起来您正在附加到应用程序的生产版本。那些可能启用了优化并剥离了调试符号。因此,您不能完全依赖 gdb 告诉您的内容。例如,启用优化后,某些变量值将在任何给定时间对 gdb 不可用。所以我的建议是将上述信息保留为数据点。但不要仅凭这些就下定论。不幸的是,您需要进一步调试。
标签: linux debugging gdb casperjs