我试图使用“strace -p”附加到已经运行的JBoss进程. JBoss正在使用1.5.0_15
Java JDK.不幸的是,这不行 – 我只得到一个单独的futex()结果:
# strace -p 3388 Process 3388 attached - interrupt to quit [ Process PID=3388 runs in 32 bit mode. ] futex(0x8f18f7c,FUTEX_WAIT_PRIVATE,1,NULL <unfinished ...>
Strace适用于所有其他程序,但不适用于JBoss.当我通过strace启动进程时,它似乎工作正常.当我尝试附加到已经运行的进程时它不起作用.
我使用64位Linux 2.6.18与32位Java JDK(如果重要的话,RedHat Enterprise Linux 5.3).
更新#1:
我尝试使用“-d”运行它,但输出似乎没有更多的见解,至少对我来说:
[root@]# strace -d -e verbose=all -p 3388 Process 3388 attached - interrupt to quit [wait(0x137f) = 3388] pid 3388 stopped,[SIGSTOP] [wait(0x57f) = 3388] pid 3388 stopped,[SIGTRAP] [ Process PID=3388 runs in 32 bit mode. ] futex(0x8f18f7c,NULL
解决方法
如果该进程中有多个线程,则需要给出strace多个-p选项,指定每个线程的ID.看起来你是成功跟踪原来的父线程,它什么都不做,只是等待其他一些线程完成.
(当您从strace启动命令时,它起作用的原因是,默认情况下,strace会创建新的子进程,并跟踪它们).
原文地址:https://www.jb51.cc/linux/393744.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。