4 ms·
If you think strace is useful, wait until you try dtrace.
by _kp6z 13y ago
If you think strace is useful, wait until you try dtrace.
- fafner 13y agoor systemtap https://sourceware.org/systemtap/ https://sourceware.org/systemtap/ or ktap http://www.ktap.org/doc/tutorial.html http://www.ktap.org/doc/tutorial.html for GNU/Linux
- cbab 13y agoor LTTng with both kernel and userspace tracers http://lttng.org http://lttng.org Disclaimer: LTTng developer :)
- sgt 13y agoI was thinking that too. It is my humble opinion that dtrace will knock strace out of its socks.
- stormbrew 13y agoI find that strace (or dtruss) is more useful when you know less about what exactly you're trying to find. A log of syscalls is often exactly the right granularity to find out the gist of what a process you didn't write is trying (and failing) to do. So I think the comparison, despite the superficial similarity and similar mechanism of action, isn't really fair.
- ballard 13y agodtrace is cool, and it benefits from source instrumentation (probes). strace / dtruss just spit out kernel syscalls of any user land program wo modifications. Also dtrace, as seen on smartos
- hobo_mark 13y agowhile we wait, could you elaborate on that? ;)
- dmpk2k 13y agostrace shows syscalls -- it's effectively truss. That's useful and all, but what if you want to instrument arbitrary parts of a program, not just the syscall interface? By function or instruction? Either in userspace or in kernel? With statistical functions? And speculative tracing? And extensive control flow (except loops, which prevent certain safely guarantees DTrace makes). And a lot more. Don't be fooled by the single-letter change: strace is to DTrace what edlin is to emacs. Or something else ridiculously extreme. They're barely comparable.
- Xdes 13y agoStill doesn't tell me what dtrace does.
- brodney 13y agoRead this: http://blog.bignerdranch.com/1907-hooked-on-dtrace-part-1/ http://blog.bignerdranch.com/1907-hooked-on-dtrace-part-1/
- Xdes 13y agoOr you could just give a concise definition: >What is this "DTrace" thing? It stands for "Dynamic Tracing", >a way you can attach "probes" to a running system >and peek inside as to what it is doing.
- brodney 13y agoIt was my mistake to link you to a tutorial on the thing you are asking about. I don't know what came over me.
- dunham 13y agoIt's like awk, except that you match entry/exit of syscalls, function calls, method invocations (in ObjC/Java), and give code to execute with access to arguments, return values, stack trace, etc. It can be used to write tools like strace (see "dtruss" on OSX), iotop, topsyscall, etc.
- shangxiao 13y agoThanks! It looks as though by default strace isn't available on Mac but dtrace is!