Friday Feb 29, 2008

pstack in Solaris 10 prints java frames

Prior to Solaris 10, if you ran pstack command against a java process, you would see some garbage characters in java frames.seen below.

-----------------  lwp# 3 / thread# 3  --------------------
fef9f9c8 lwp_cond_wait (f2918, f2900, 0)
fe8f2948 void ObjectMonitor::wait(long long,int,Thread\*) (f2918, f2900, fed5c048, 0, fed675a0, f28d8) + 558
fe8f1d8c JVM_MonitorWait (0, f2304, 0, 0, f1d28, fed4dd24) + 2f0
f8d1b9b0 ???????? (bb6e1f08, fb67fa24, f26dc, bd13f668, bea2afa0, bd292558)
f8e7f49c ???????? (f8aa71c0, f8e7f1c8, f8e7f5d8, 0, f1d28, 8)
f8aa71b8 ???????? (0, fed34000, fed627f8, f8812e10, 5400, fb67fae0)
f8800218 ???????? (fb67fbc8, fb67fd90, a, d54435d8, f880a7e0, fb67fcc0)
fe8d9f00 void JavaCalls::call_helper(JavaValue\*,methodHandle\*,JavaCallArguments\*,Thread\*) (1, f1d28, fb67fcb8, fb67fbd8, fb67fcbc, 0) + 5b8
fe8f1734 void JavaCalls::call_virtual(JavaValue\*,Handle,KlassHandle,symbolHandle,symbolHandle,Thread\*) (555c, f1d28, f22f0, f22fc, f26dc, b0c00750) + 18cfe8f1590 void thread_entry(JavaThread\*,Thread\*) (b0c00750, f1d28, fed5c928, d542470, f22f0, fed5c418) + 12c
fe8f1414 void JavaThread::run() (f1d28, fed4b784, 6, 5400, 5790, fed34000) + 1f4
fec1ffac void\*_start(void\*) (f1d28, 32f4, 5800, 5b1c, 3000, fed34000) + 144
feff5854 _lwp_start (0, 0, 0, 0, 0, 0) 

 
With Solaris 10, pstack has the ability to decode java frames which makes our lives as support engineers bit easy.  Here is the sample output of pstack taken on a solaris 10 system against a java process.

 -----------------  lwp# 10 / thread# 10  --------------------

 fef46acc lwp_cond_wait (94d7e0, 94d7c8, 0, 0)
fe8f490c void ObjectMonitor::wait(long long,int,Thread\*) (94d7e0, 94d7c8, fed7ccc8, 0, fed88224, 94d7a0) + 558
fe8f4304 void ObjectSynchronizer::wait(Handle,long long,Thread\*) (94d578, 0, 0, fed67688, cf77f5ec, 4818) + d8
fe8f3f18 JVM_MonitorWait (0, 94d0a4, 0, 0, 94d578, fed6e554) + 2f0
f900bc20 \* java/lang/Object.wait(J)V+26828
f900bbc4 \* java/lang/Object.wait(J)V+0
f9005764 \* java/lang/Object.wait()V+2 (line 474)
f9005764 \* java/util/TimerThread.mainLoop()V+28 (line 483)
f9005764 \* java/util/TimerThread.run()V+1 (line 462)
f9000218 \* StubRoutines (1)
fe8dc090 void JavaCalls::call_helper(JavaValue\*,methodHandle\*,JavaCallArguments\*,Thread\*) (1, 94d578, cf77fa98, cf77f9b8, cf77fa9c, 0) + 5b8
fe8f38c0 void JavaCalls::call_virtual(JavaValue\*,Handle,KlassHandle,symbolHandle,symbolHandle,Thread\*) (57cc, 94d578, 94d090, 94d09c, 94d47c, d4cb7350) + 18c
fe8f371c void thread_entry(JavaThread\*,Thread\*) (d4cb7350, 94d578, fed7d5a8, f4c2d2e0, 94d090, fed7d098) + 12c
fe8f35a0 void JavaThread::run() (94d578, fed6bef4, 6, 5800, 5a0c, fed54000) + 1f4
fec2af08 void\*_start(void\*) (94d578, fed6e58c, fed67650, 0, 3314, fed54000) + 200
fef457f8 _lwp_start (0, 0, 0, 0, 0, 0)

About

Hema

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today