什么?GDB最强?太老了而且不能调试托管,先把它踹一边去
什么是LLDB?
LLDB是下一代高性能调试器,也为当今最为先进的调试工具。它是作为一组可重用组件,高度利用了大型LLVM中的现有库项目,例如Clang表达式解析器和LLVM反汇编器。
LLDB是macOS上Xcode中的默认调试器,持调试C,桌面和iOS设备和模拟器上的Objective-C和C++。
LLDB横跨了Linux,MacOS,Windows,安卓等四大当今最流行的操作系统。
LLDB项目中的所有代码都可以在“具有LLVM例外的Apache 2.0许可证”下获得。开源可靠。
LLDB调试的部分文章:
绝顶技术:断点+内存映射组合的CLR超强BUG?
C#/.Net的多播委托到底是啥?彻底剖析下
.NET7 for LoongArch64(国产龙芯)
发现一个矢量化bug,提交了一个Issues给dotnet团队
C#里的var和dynamic区别到底是什么,你真的搞懂了嘛
继续看微软的bit位算法,特殊位赋值取值
.Net8的JIT是如何计算函数内存空间大小的?
什么是Windbg?
WinDbg是Windows调试工具中包含的内核模式和用户模式调试器。
它可以作为WDK的一部分
Windows调试工具包含在Windows驱动程序工具包(WDK)中。
也作为Windows SDK的一部分
Windows 调试工具包含在 Windows 软件开发工具包 (SDK) 中。
还可以作为独立工具集
可以单独安装Windows调试工具而不安装Windows SDK或WDK,可以单独安装 Windows 调试工具而不安装 Windows SDK 或 WDK,方法是启动 Windows SDK 的安装,然后在要安装的功能列表中仅选择“Windows 调试工具”(并清除所有其他功能的选择)。
windbg调试的部分文章:
DOTNET_EnableWriteXorExecute引起另外一个异常
.Net 7 内存模型函数描述结构MethoDesc
C++ 异常研究(堆栈钩沉)
这两个其实都是好东西,都在用。在Linux/MacOS上LLDB是不二之选,如果是Windows上面Windbg可能更好些。个人比较倾向于LLDB,从上面文章使用频率亦可看出。比较优雅的设计和丝滑般的调试感受,配合上.Net本身的优雅,是非常舒服的。
结尾:
以上个人见解
作者--江湖评谈