Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: A simple, pretty alternative to strace written in Rust (github.com/jakwai01)
36 points by JAKWAI on July 29, 2022 | hide | past | favorite | 9 comments



Heavy professional strace user here.

afaics the wall clock time of the call is not implemented. This is effectively useless to me without that.

The second -ff is critical for following busy multiprocess stuff like a JVM.

If you aren't resolving every known struct then -x and -xx can be useful.

The FD resolution provided by -yy is not critical but can be a real time saver.

The flags I use most often are -ffttTyy -o -s


Uhh thanks for your feedback. That's very valuable to me since I did not actually know anyone who regularly uses strace. I will definitely look into implementing these flags then!


Hi! Like strace, lurk allows a user to trace system calls. It implements an opinionated subset of strace. Compared to strace, lurk is optimized for readability and supports structured output in JSON format.

I’d be happy to receive some feedback : )


It's been interesting watching you build this on Twitter.

What prompted you to invest your time in this project vs the others that you were probably considering?


Thanks! I was invested in improving the user experience of strace. Strace is incredibly useful for debugging but I wouldn't consider it particularly "accessible". Understanding the output is quite a challenge at first. My goal was to remove this burden and therefore make strace accessible to a broader audience. I probably should also mention that Julia Evan's talks also had quite an impact on me: https://www.youtube.com/watch?v=HfD9IMZ9rKY :)


Cool project, I really like the new structured output - that will make parsing stuff much easier than with strace! Is the performance overhead of tracing the syscalls comparable to strace?


Thanks for your feedback :D! I have actually never tested the performance compared to strace. I just used `time` to try to get a rough estimate and the two were basically taking the same time for the tasks I threw at them. I certainly think that there is _some_ overhead. Either in my _not fully optimized_ implementation or in the libc wrappers the *nix crate provides. Probably the former ;).


Oh right, that makes sense!


Supporting ltrace type tracing would be awesome




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: