Thursday Jul 15, 2010

pargs from within your program

I was asked how to obtain the arguments to a program other than your own without executing the command pargs. The answer is procfs. psinfo has a field,pr_psargs, containing the first 80 characters of the command line arguments. But some programs, especially java programs, have more than 80 characters. It so happens that psinfo contains pr_argv which contains the address of a vector of pointers to the character string for each argument. This address is in the address space of the application! So we have to pread from the /proc/pid/as to load the vector of addresses and then pread the character strings for each command line argument. It adds to the complexity as we have to read different amounts depending on whether the target application is 32 or 64 bit.

My sample code is here

Thursday Jan 21, 2010

thrbar : perfbar for threads

thrbar 1.0, for Solaris 9 and higher

Originally there was "perfbar".

"perfbar" gives a near realtime view of CPU utilization states.
In perfbar red=kernel, green=user, yellow=wait on IO, blue=idle, and white is indeterminate.

It is common for an early indication of a performance issue to be obvious in perfbar.

I realized that it would be wonderful to have a perfbar for threads. So I borrowed the gui for perfbar and modified it to use procfs to access thread CPU utilization states and display them ala perfbar.

In thrbar
white=indeterminate
green=user
red=kernel
yellow=latency (wait for cpu)
orange=wait for Lock
blue-green=wait for PageFault
blue=SLEEP

I have prebuilt the binaries.
Sorry, I can not distribute the source.
cp thrbar.i386_32 or thrbar.i386_64 or thrbar.sparc_32 or thrbar_64 to thrbar and you are ready.

Get thrbar here

thrbar -help:

thrbar 1.0

maintained by Rick Weisner
based on the original perfbar by:
Joe Eykholt, George Cameron, Jeff Bonwick, Bob Larson

Usage: thrbar [X-options] [tool-options]
supported X-options:
-display or -disp
-geometry or -geo
-background or -bg
-foreground or -fg
-font or -fn
-title or -t
-iconic or -icon
-foreground or -fg
-font or -fn
-title or -t
-iconic or -icon
-decoration or -deco

supported tool-options:
-h, -H, -? or -help: this help
-v or -V: verbose
-r or -rows: number of rows to display, default 1
-bw or -barwidth: width of bars, default 12
-bh or -barheight: height of bar, default 180
-i or -idle: indeterminate color default white
-u or -user: user color, default green
-s or -system: system color, default red
-w or -wait: Latency color, default yellow
-l or -lock: Wait for Lock color, default orange
-f or -fault: Wait for PageFault color, default blue/green
-sl or -sleep: SLEEP color, default blue
-int or -interval: interval for display updates (in ms), default 1000
-si or -statsint: interval for stats updates (in display intervals), default 1
-pid pid number to monitor "

About

user12610965

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