寻找问题,或如何创建新的调试器

我们非常重视开发工具:我们参与了有关编辑器(Vim或Emacs?)的激烈辩论,我们花了大量时间根据自己的喜好自定义IDE,并仔细选择每天变得越来越完善和便捷的编程语言和库。但是,这里可以区分一个类别,由于某种原因,它仍然应该被遗忘:调试器在过去十年中并没有发生太大变化,尽管它们仍然是捕获错误和导航代码的基本工具之一。





图片:蒂莫西戴克斯@timothycdykes,unsplash.com



通常,我们更喜欢快速添加几个prints,而不是在合适的位置放置一个断点,然后使用调试器遍历该断点以及问题“为什么?” 不会停止逗我-毕竟,log和prints提供的信息有限,并且不允许与正在运行的进程进行交互式交互(并且调试器甚至可以与“死”进程配合使用!)。



我看到的主要原因之一是调试器的开发缺乏重大进展。



GDB , . , 4K, - , . , IDE VS Code ( , JavaScript), - - .



. Rust, — , , (, Make 1976 ).



: Rust "" — , , . " ", , . , , — , .



. GDB LLDB, : (Go Rust) , C C++. — , — , . — Go Java LLDB.



, ? , Rust! , . Delve , ( — Go) , x86-64 Windows/Linux/macOS.



, , , . : - , ( - ). REPL Jupyter ( , , ).



, , , , , .



, Headcrab, . : , , . , — - .



如果您有兴趣参与开发,即使系统编程对您来说仍然是新手,我们也很乐意为您提供支持。如果您分享调试经验,也可以提供帮助:遇到了哪些问题,使用了哪些工具以及希望在新的调试器中看到什么?



感谢您阅读本文。




All Articles