how to use truss?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how to use truss?
# 1  
Old 03-26-2008
how to use truss?

Hi all,
while trying to debug and figure out why a lofiadm command was not working on my script, i came across a cmd called "truss"

all i know about it is that it executes the specified command and produces a trace of the system calls it performs, the signals it receives, and the machine faults it incurs.

But i dont know how to use it in a script..
and how to follow the output...
am going through the man pages but its always a little easier to understand if someone explains it.

Can this be used in the middle of the script , and only to a particular process,
in this case can i use truss just for figuring out why lofiadm is not creating a block device?
even though its amidst various other commands in a script??

I would like to know more about this!!
can anyone shed some light on this?

Last edited by wrapster; 03-26-2008 at 09:33 AM.. Reason: forgot to add a few more queries
# 2  
Old 03-26-2008
This is what i had in my notes ( i must have picked it up from some website :-))

Just like linux loopback device solaris has lofi - loopback file driver. The lofi file driver exports a file as a block device. Reads and writes to the block device are translated to reads and writes on the underlying file.

e.g of mounting existing cd-rom image(cd.iso)

lofiadm -a /path/to/cd.iso

Output:

/dev/lofi/1


/dev/lofi/1 is the device, use the same to mount iso image with mount command:


mount -o ro -F hsfs /dev/lofi/1 /mnt
# 3  
Old 03-26-2008
hey all you've written is regarding lofi..

I want to know about truss!!!
# 4  
Old 03-26-2008
You use truss on the same command line where you give the command you want to study. Use -o to store the output in a file or you'll get a giant scroll of stuff on your screen that will be impossible to read. Like this:

truss -o mytruss.txt myscript.sh

Where myscript.sh is what you want to learn about and mytruss.txt is the textfile to store the output in. Then just read mytruss.txt.

Now, READING the output is a whole other thing. It is very complicated if you've never seen it. No simple tips I can give you, just take a look and see what you can figure out - google stuff that doesn't make sense.

For your specific questions:

To truss an already running process use the -p flag and give the PID of the process you want to study.

To see why it isn't opening a device I guess you'd look at the open and close statements to see what isn't matching or where it breaks down. Every time your process opens or closes a file truss will tell you about it, so you may see the spot of your script/command where you expect the device to open but no file open happens.

I'm not sure about using truss within a script - to use it on a script I'd simply use truss and run the script as the command to trace.

Last edited by rhfrommn; 03-26-2008 at 12:41 PM.. Reason: Add more info
# 5  
Old 03-26-2008
Oh, i see,

But cant you run a truss on a single command , (the one that is strangling the output) and figure whats wrong?
Should the whole script be run?
# 6  
Old 03-26-2008
I'm not sure if you could use it within a script on just one command. Probably could, try it on a test box I guess. But I've not done it, and didn't see any examples in the man pages of doing it that way so I can't say for sure.

Definately use it with the -o option in that case so it saves the truss output separately from whatever else your script would normally be doing.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Truss output

Hi, I want to trace a background java program which runs in infinite loop. I have used truss command for this. But the program terminated after some hours with below truss output: Received signal #1, SIGHUP, in lwp_cond_wait() /1: siginfo: SIG#0 Please let me know what... (5 Replies)
Discussion started by: Hara Prasad
5 Replies

2. UNIX for Advanced & Expert Users

Truss output interpretation

hi, anyone can help on this piece of truss output? 8094: 0.7028 write(4, 0x0043BE90, 236) = 236 8094: T S H \0\0\0EC020101\0\0\0\0\0\0\0\0\0 "02\0\0 303\0\0 I D 8094: \f %\0\0\0\0 2\0F67F\0\0\0\0 @06FFC99A ; 8094: L D6\0 303 8094: ... (6 Replies)
Discussion started by: ghostdog74
6 Replies

3. UNIX for Dummies Questions & Answers

Truss output

Hi, I want to trace a background java program which runs in infinite loop. I have used truss command for this. But the program terminated after some hours with below truss output: Received signal #1, SIGHUP, in lwp_cond_wait() /1: siginfo: SIG#0 Please let me know what... (0 Replies)
Discussion started by: Hara Prasad
0 Replies

4. AIX

Truss output

Hello, I'm using AIX 5.3.12.5 and trying to understand truss output. I'm running a job with real time of 16 minutes but only 4 minutes of CPU time. I'm trying to understand what the process is doing. I'm getting a lot of kread, kpread, kwrite, kpwrite... localhost:~ x$ grep... (1 Reply)
Discussion started by: Kovacs
1 Replies

5. Shell Programming and Scripting

need help with truss !

i have to gather some info about a process and redirect it to a1.txt file. For this i m using truss command truss -po a1.txt $PID_Detail where $PID_Detail= 1482944 3362976 -------------------------------------------------------------------------- Below the script: #!/bin/ksh for i... (6 Replies)
Discussion started by: ali560045
6 Replies

6. Shell Programming and Scripting

truss output

Hi I have to get redirect the truss ouput to file. I am doing truss -p 12121 >> output.txt But it still displays on the screen adn output.txt is empty Can some help how to do this? Thanks in advance Ammu (1 Reply)
Discussion started by: ammu
1 Replies

7. UNIX for Advanced & Expert Users

truss output

Hi, We keep getting hanging Oracle process for our ETL. The dba's asked me to do o truss. All I see is pages and pages of the following,:cool: pollsys(0xFFFFFFFF7FFF38C8, 1, 0xFFFFFFFF7FFF3800, 0x00000000) = 0 pollsys(0xFFFFFFFF7FFF38C8, 1, 0xFFFFFFFF7FFF3800, 0x00000000) = 0... (0 Replies)
Discussion started by: happyadm
0 Replies

8. IP Networking

truss results

I have tried to analyze the log of truss shown below. I haven't found anything clear for me indicating the problem. The process is the server that accepts client connections. To establish the connection it starts the child thread then it should transfer data. In reality it gets only connection.... (1 Reply)
Discussion started by: gogogo
1 Replies

9. Solaris

truss results

moved to the Netwoking (0 Replies)
Discussion started by: gogogo
0 Replies

10. UNIX for Advanced & Expert Users

truss

I'm a DBA so no abuse please! I've for 5 Oracle Forms processes that are spinning and am trying to find out if they're doing anything: Running HPUX 11.11 CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND 9 ? 2735 oracle 241 20 24228K 16668K run 2607:29 84.92... (2 Replies)
Discussion started by: fraze
2 Replies
Login or Register to Ask a Question