|
|
|
|
|
by scottlamb
2806 days ago
|
|
> If you are running java instead of a c program the proc stacktrace shows you just the virtual machine state. No, this is a _kernel_ backtrace: what is happening in kernelspace on behalf of your process. If the work is being done in userspace (that is, in state R; the thread isn't in a syscall or page fault handler), you'll see essentially nothing here. I just tried it on a userspace busylooper and got this: [<0000000000000000>] exit_to_usermode_loop+0x57/0xb0
[<0000000000000000>] prepare_exit_to_usermode+0x20/0x30
[<0000000000000000>] 0xfffffffffffffff
Java, Python, C++ nothings all look pretty similar.If you want a userspace stack trace, you need a different tool. If you're using an interpreted (or perhaps JITted) language, yes, you probably want something language-specific. Also note the current stack trace is a per-thread concept, not a per-process one. If you're looking at a multithreaded program, you want to target the thread(s) of interest with "/proc/<PID>/task/<TID>/stack". |
|