如何比较两个不同断点之间的实例状态

Posted

技术标签:

【中文标题】如何比较两个不同断点之间的实例状态【英文标题】:How to compare instance state between two different breakpoints 【发布时间】:2016-08-03 13:10:33 【问题描述】:

我想比较我的程序中一个实例在两个不同断点之间的状态变化。具体来说,我想在位置 A 中断,获取当前实例状态的快照,继续执行,在位置 B 中断,获取实例状态的另一个快照并能够比较两者,无论是文本导出还是差异工具。

我希望 Visual Studio 的调试工具提示能够以某种方式实现这一点,因为它们还可以存储最后一个会话的调试值,但我还没有找到这样做的方法。我还能如何做到这一点?

【问题讨论】:

只是将“快照”存储在一个临时的? 您可以将它们输出为文本并进行比较:***.com/questions/2927991/… 为什么你不能根据它们的价值来比较自己? @NathanOliver 在类包含指针时不起作用(很好) 【参考方案1】:

VS2015有一个诊断工具,共享内存使用情况,你可以在调试的时候拍快照,点击查看帮助,双击对象类型,就可以查看实例了。是你想要的吗?

参考: https://msdn.microsoft.com/en-us/magazine/dn973013.aspx

【讨论】:

很酷的功能。不确定是否适用于我的用例,或者可能比在即时窗口中输出变量内容更复杂,但绝对有趣。不幸的是,无论如何我现在都必须使用 VS2013。 即使使用VS2013,也可以使用Debug->Performance and Diagnostics下的“Memory Usage”。当然你也可以使用免费的VS2015社区版。 @user1709708,如果以上建议有帮助,请采纳。如果没有,请随时告诉我。

以上是关于如何比较两个不同断点之间的实例状态的主要内容,如果未能解决你的问题,请参考以下文章

如何基于多列比较两个不同的表?

如何将两个不同数据库(MySQL、SQL SERVER)之间的 TEXT 字段与哈希值进行比较?

如何在同一分支上的两个不同提交之间区分同一文件?

Fiddler设置断点

React 两个组件之间的状态同步或两个不同事物之间的更改同步

卡尔曼滤波;计算两个不同时间状态向量之间的互协方差