Show HN: Unbug – Rust macros for programmatically invoking breakpoints

BrainBacon | 88 points

You could potentially build on stable Rust by emitting the breakpoint instructions yourself, at least on popular platforms. For instance, `core::arch::asm!("int3")` on x86, or `core::arch::asm!("brk #1")` on ARM.

Also, this is providing motivation to want to stabilize a breakpoint mechanism, perhaps `core::arch::breakpoint()`. I'm going to propose an API Change Proposal (ACP) to the libs-api team to see if we can provide that in stable Rust.

JoshTriplett | 16 hours ago

Rusts current pretty printers in lldb and gdb are just not good enough for a fluid step debugging experience. I've had luck with intellij IDE's but it's very sad that the best we can do in a language with such good devex tooling is print debugging.

Theoretically you could generate debug scripts with a macro and embed them with

  #![debugger_visualizer(gdb_script_file = "../foo.py")]
but I haven't seen anyone go through the trouble.
merksoftworks | 12 hours ago

I find myself using debug_here (https://github.com/ethanpailes/debug-here) which does similar things but for desktop-class debugging. It hasn't been updated in a while, but it still works for me on Windows at least.

xobs | 15 hours ago

Neat project! Maybe this decision is copied over from unreal engine, but instead of `ensure` and `ensure_always`, having names like `ensure_once` and `ensure` would have been more clear to me.

nathanwh | 8 hours ago

Oh, that’s super clever integration with tracing. Feel free to send us a PR; we’ll link to this as a related project in the docs!

thramp | 16 hours ago

We used to divide by zero but then someone decided that was ok.

dboreham | 13 hours ago

Is there a good newby tutorial on how to use debugger with Rust (and debugger in general?) No videos please.

ewuhic | 10 hours ago

What does nightly mean ? I hate that you could not know a specific version of a nightly.

revskill | 17 hours ago