1.6 KiB
1.6 KiB
+++ date = "2023-04-02" draft = true path = "/blog/debuggers-really" tags = ["debugging"] title = "Our debuggers are awful" +++
-
Working on otel for rust
-
Have to vendor several things to get http request logs
-
Why are browsers the only things that you can dump http request logs from
-
Why can't I dump a http/2 protocol trace from h2 in rust?
-
This isn't a tracing problem
- Tracing is designed to not leak customer data
- Tracing is generally a metadata thing, not a data thing
- Tracing needs instrumentation and seeing the possibility of a problem ahead of time
-
What is a futuristic debugger, anyway?
- Integrate with rr
- Attach to a running system
- Has no overhead while not in use
- Can get information out of a system which has not yet been instrumented
-
So thats just dtrace
- Yes kinda! But there's not enough instrumentation
- I can't dump the request logs into browser devtools (e.g. with a .har file)
- Rust ecosystem does not really have deep dtrace integration
-
Debugging a system is too important to disturb it
- Debugging a system is too important to care about module privacy
-
Sidebar: "realness"
- When we build systems, we tend to treat the user . . . patronizingly, or at least specially
- Database schemas with cursed tag-value schemas rather than dynamic schemas
- Lowering things into a worse value representation that's different than host-language objects
- Cannot introspect objects while ignoring module privacy, even though you could exactly do this given ctf data
- RUSTC_BOOTSTRAP