0
我正在尝试检查在我的服务器上“挂起”的进程。我使用gdb进行attatch的过程中,像这样:GDB映射到PID - 无法访问内存地址
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脚本btw。
听起来就像您附加到应用程序的生产版本。这些可能会启用优化并删除调试符号。所以你不能完全依靠gdb告诉你的。例如,启用优化功能后,某些变量值在任何给定时间都不可用于gdb。所以我的建议是将上面的信息保存为数据点。但是不要仅仅依靠那些人得出确切的结论。不幸的是,你需要进一步调试。 – kaylum