Debugging 调试器的改进?

Debugging 调试器的改进?,debugging,Debugging,在过去20年左右的时间里,调试器有什么改进吗?当我启动pdb时,我觉得一切都没有改变。我是不是遗漏了什么 特别是近年来,调试器增加了哪些创新?有很多,就像在软件开发的其他领域一样。一个很好的例子是reverse-*一组gdb命令,这些命令最近在2009年被添加到gdb。当然有更多的工具可以帮助调试非常具体的问题:剖析器、网络流量分析器(WiReSARK、HTTPFox)、许多SysStudioS工具,甚至/PROC .< /P> < P> VisualStudio的调试器可视化是一个巨大的生产力

在过去20年左右的时间里,调试器有什么改进吗?当我启动pdb时,我觉得一切都没有改变。我是不是遗漏了什么


特别是近年来,调试器增加了哪些创新?

有很多,就像在软件开发的其他领域一样。一个很好的例子是
reverse-*
一组
gdb
命令,这些命令最近在2009年被添加到
gdb

这让你可以倒带你的应用程序,查看历史上变量的值,而不仅仅是你应用程序的当前状态。

我认为“调试器”已经保持了相当长的一段时间。大多数只提供有关调用堆栈、线程、局部变量、全局变量以及一些表达式计算的信息。该功能集定义得很好,而且很有效,所以没有太大变化。可能不需要

调试器可以帮助您确定程序流程,其中许多其他诊断工具决定关注非常具体的问题。不要局限于传统的调试器,让我们看看诊断工具的整个空间,因为它们也可以帮助我们调试问题

  • -如果您怀疑某些与内存有关的问题,那么您可能不会开始使用调试器单步执行代码
  • -如果您的代码中存在回归,则在您知道是什么代码导致了回归之前,单步执行调试器不会有多大帮助。帮助您缩小代码范围的工具可以快速节省大量时间,并且可以说比传统的调试器更快
  • -追踪可能是老生常谈,但人们为自己的日志构建了各种分析工具。通过分析,您可以发现不明显的错误。例如,使用常规调试器单步执行代码不会表明90%的用户在购物车上找不到“checkout”按钮。但基础数据分析可以帮助发现其他调试器无法发现的各种bug

<> P>当然有更多的工具可以帮助调试非常具体的问题:剖析器、网络流量分析器(WiReSARK、HTTPFox)、许多SysStudioS工具,甚至/PROC .< /P> < P> VisualStudio的调试器可视化是一个巨大的生产力优势,尤其是在使用C++或C++ STL时。它还有块文本、html、xml甚至数据集的预览器。STL支持显示向量、映射、集合和列表

在VS2010中,对多线程的支持也有了很大的改进

当我不得不在Xcode或gdb上调试时,我感觉自己被拖回了黑暗时代(Xcode甚至有一半时间都不能可靠地显示局部变量,而让unicode字符串显示是一场噩梦)