Using the attachment arithmetictest.java do the following:
1. jdb ArithmeticTest
Initializing jdb...
0xee2f21a8:class(ArithmeticTest)
2. stop at ArithmeticTest:15
Breakpoint set at ArithmeticTest:15
3. run
run ArithmeticTest
x is 6, y is 4
running ...
main[1] x + y = 10
x - y = 2
x / y = 1
x % y = 2
a is 12.5, b is 7.0
Breakpoint hit: ArithmeticTest.main (ArithmeticTest:15)
main[1]
4. run
run ArithmeticTest
x is 6, y is 4
x + y = 10
x - y = 2
x / y = 1
x % y = 2
a is 12.5, b is 7.0
Breakpoint hit:
5. run (we hang here)
Full thread dump:
"Agent input" (TID:0xee300f08, sys_thread_t:0xbc1c0, state:MW) prio=10
at sun.tools.debug.RemoteAgent.dumpStack(RemoteAgent.java:550)
at sun.tools.debug.RemoteThread.getStack(RemoteThread.java:280)
at sun.tools.debug.RemoteThread.dumpStack(RemoteThread.java:131)
at sun.tools.ttydebug.TTY.breakpointEvent(TTY.java:82)
at sun.tools.debug.AgentIn.run(AgentIn.java:62)
at java.lang.Thread.run(Thread.java:472)
"output reader" (TID:0xee301888, sys_thread_t:0x1054d8, state:CW) prio=9
at java.lang.Object.wait(Native Method)
at java.io.PipedInputStream.read(PipedInputStream.java:195)
at java.lang.ProcessInputStream.read(UNIXProcess.java:314)
at java.io.PipedInputStream.read(PipedInputStream.java:236)
at java.io.InputStream.read(InputStream.java:74)
at java.io.InputStreamReader.fill(InputStreamReader.java:159)
at java.io.InputStreamReader.read(InputStreamReader.java:229)
at java.io.BufferedReader.fill(BufferedReader.java:138)
at java.io.BufferedReader.readLine(BufferedReader.java:226)
at sun.tools.debug.RemoteAgent$1.run(RemoteAgent.java:109)
"stderr reader pid=28103" (TID:0xee301a68, sys_thread_t:0xf96e8, state:CW) prio=5
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:142)
at java.lang.ProcessInputStream.run(UNIXProcess.java:349)
at java.lang.Thread.run(Thread.java:472)
"stdout reader pid=28103" (TID:0xee3017f0, sys_thread_t:0xfba00, state:CW) prio=5
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:142)
at java.lang.ProcessInputStream.run(UNIXProcess.java:349)
at java.lang.Thread.run(Thread.java:472)
"process reaper" (TID:0xee3018f0, sys_thread_t:0xfb7d0, state:CW) prio=5
at java.lang.UNIXProcess.run(Native Method)
at java.lang.Thread.run(Thread.java:472)
"Finalizer" (TID:0xee300378, sys_thread_t:0xad110, state:CW) prio=8
at java.lang.Object.wait(Native Method)
at java.lang.Ref$Queue.remove(Ref.java:232)
at java.lang.Ref$Queue.remove(Ref.java:245)
at java.lang.Finalizer$FinalizerThread.run(Finalizer.java:130)
"Ref handler" (TID:0xee300428, sys_thread_t:0xaa398, state:CW) prio=10
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:309)
at java.lang.Ref$RefHandler.run(Ref.java:269)
"Async Garbage Collector" (TID:0xee3001f0, sys_thread_t:0x940e8, state:CW) prio=1
"Idle thread" (TID:0xee300238, sys_thread_t:0xa2b10, state:R) prio=0 *current thread*
"Clock" (TID:0xee300088, sys_thread_t:0xa2a08, state:CW) prio=12
"main" (TID:0xee3000b0, sys_thread_t:0x20a60, state:CW) prio=10
at java.net.SocketInputStream.socketRead(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:90)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:129)
at java.io.BufferedInputStream.read(BufferedInputStream.java:156)
at java.io.DataInputStream.readInt(DataInputStream.java:360)
at sun.tools.debug.RemoteAgent.getReply(RemoteAgent.java:413)
at sun.tools.debug.RemoteAgent.run(RemoteAgent.java:743)
at sun.tools.debug.RemoteDebugger.run(RemoteDebugger.java:216)
at sun.tools.ttydebug.TTY.run(TTY.java:301)
at sun.tools.ttydebug.TTY.executeCommand(TTY.java:1361)
at sun.tools.ttydebug.TTY.<init>(TTY.java:1463)
at sun.tools.ttydebug.TTY.main(TTY.java:1584)
Monitor Cache Dump:
sun.tools.debug.RemoteThread@EE304DB8/EE379228: owner "Agent input" (0xbc1c0, 1 entry)
java.io.DataOutputStream@EE300FE8/EE370120: owner "main" (0x20a60, 1 entry)
Waiting to enter:
"Agent input"
java.io.InputStreamReader@EE3019D0/EE367580: owner "output reader" (0x1054d8, 1 entry)
java.io.BufferedInputStream@EE300F50/EE36EF80: owner "main" (0x20a60, 1 entry)
Registered Monitor Dump:
utf8 hash table: <unowned>
JNI pinning lock: <unowned>
JNI global reference lock: <unowned>
BinClass lock: <unowned>
Class linking lock: <unowned>
Code rewrite lock: <unowned>
Heap lock: <unowned>
Monitor IO lock: <unowned>
Child death monitor: <unowned>
Waiting to be notified:
"process reaper"
Event monitor: <unowned>
I/O monitor: <unowned>
Alarm monitor: <unowned>
Waiting to be notified:
"Clock"
Sbrk lock: <unowned>
Monitor cache expansion lock: <unowned>
Thread queue lock: <unowned>
Monitor registry: owner "Idle thread" (0xa2b10, 1 entry)
Thread Alarm Q:
sys_thread_t 0x1054d8 [Timeout in 512 ms]
sys_thread_t 0x940e8 [Timeout in 542 ms]
- duplicates
-
JDK-4168528 DOC*: JS: step debug in&out synchronized method, deadlocks
- Closed