2012-04-30 9 views

risposta

1
+0

ptrace potrebbe essere più utile in questo caso –

+2

@MikeKwan 'ltrace' è per le chiamate alle funzioni di libreria e' ptrace' è per esaminare la memoria di altri processi. 'strace' è quello per le chiamate di sistema. –

9

Usa strace. Ma c'è un trucco per il mio caso. È necessaria l'opzione -f. Ad esempio, il seguente codice:

public class Foo { 
    public static void main (String [] args) { 
     System.out.println("XXX");  
    } 
} 

Dopo l'esecuzione javac Foo.java per compilarlo, strace java Foo 2>&1 | grep write stampa nulla. Ma strace -f java Foo 2>&1 | grep write stampe:

[pid 11655] write(3, "0x63", 4)   = 4 
[pid 11655] write(3, "\0", 1)   = 1 
[pid 11655] write(3, "\0", 1)   = 1 
[pid 11655] write(3, "\0", 1)   = 1 
[pid 11655] write(3, "\0", 1)   = 1 
[pid 11655] write(3, "\0", 1)   = 1 
[pid 11655] write(3, "\0", 1)   = 1 
[pid 11655] write(3, "\0", 1)   = 1 
[pid 11655] write(3, "\0", 1)   = 1 
[pid 11655] write(1, "XXX", 3XXX)   = 3 
[pid 11655] write(1, "\n", 1 

[pid 11655] write(1, "XXX", 3XXX) = 3 mostra la chiamata di sistema fatto per System.out.println("XXX").

Problemi correlati