Skip to content

Latest commit

 

History

History
31 lines (23 loc) · 1.96 KB

090_cross_service_debuggers.md

File metadata and controls

31 lines (23 loc) · 1.96 KB

Cross-service Debuggers

First posted on June 6, 2022

What if debuggers worked across processes? Across computers? Would that even be useful?

We could do this locally by spinning up each service you're trying to test in debug mode. You'll debug normally, except you'll have to alt-tab between multiple IDEs to see which breakpoint was tripped.

But there are many challenges to getting this to work well:

  • You may not have all the services you want to debug cloned locally.
    • We can solve this by setting up a "debug" environment in the cloud.
      • This would be similar to a dev/staging environment, but we'd start each service in debug mode.
      • You'll need some way to connect each process to a UI so you can set/see the breakpoints.
  • If you can debug locally, you have to alt-tab between services to see which breakpoint tripped.
  • If a service uses multiple threads, it can be hard to track the specific thread you're debugging in.
    • We can solve this by limiting the thread pool to one, but that could eliminate the bug.
  • Did service A or B call service C?
    • Maybe we'll need a "stack trace" to tell us who the parent callers are between services.

I think an excellent multi-service debugger is hard to build because we'll probably need some program to track every breakpoint and explain how we reached it.

Who knows, maybe we don't need something like this because it's probably a better use of time to write more tests. Anyway, that's all I have this week, and I hope you have a great week!

- Curtis


#89: Spreadsheeting Friendships  |  #91: A Unit for Fun