I'm trying to strace a java applet, and strace doesn't seem to be working. I'm calling the following function.
public static void testSTrace(){
long c = 0;
for (int i = 0; i < 1000; i++){
long start = System.nanoTime();
try{Thread.sleep(0, 100);}catch(Exception e){/*cry*/}
long stop = System.nanoTime();
log.info("start : " +start+" stop : "+stop);
}
}
I get the following output from strace just before the above message is called and then nothing from strace:
clone(child_stack=0xb7c9f4c4,
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|
CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID|CLONE_DETACHED,
parent_tidptr=0xb7c9fbf8, {entry_number:6, base_addr:0xb7c9fbb0,
limit:1048575, seg_32bit:1,
contents:0, read_exec_only:0,
limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0xb7c9fbf8) = 8351 futex(0xb7c9fbf8, FUTEX_WAIT, 8351, NULL
Once I start getting log output from the method, I get nothing more from strace. I'm pretty new to strace. Any clues on what is going on? Can applets be straced?
You're probably only strace'ing a single thread. run strace with the -f flag.
Three cheers for man pages, I want the follow forks flag, -f and -F
now I get: