小智 29
Debugger团队在这个主题上有一篇很好的博客文章,并附有例子:http://blogs.msdn.com/b/visualstudioalm/archive/2013/10/10/tracepoints.aspx
跟踪点根本不是新功能(自VS 2005以来,它们一直在Visual Studio中).它们本身不是断点,因为它们不会导致程序执行中断.当你需要检查某些东西时,这可能很有用,但不能停止程序,因为这会导致bug的行为不能重现等等.
跟踪点是一种尝试,可以通过允许断点将信息记录到调试输出窗口并继续,而无需在UI处暂停来阻止程序检查某些内容,因为这会导致某些行为无法重现.您也可以使用宏来执行此操作,但这可能会更耗时.
要设置跟踪点,请首先在代码中设置断点.然后使用断点上的上下文菜单,选择"When Hit ..."菜单项.您现在可以为断点添加日志语句并关闭默认的"停止"操作,以便您记录并继续.您可以添加到日志字符串中的许多其他信息,包括有关bp位置的静态信息,例如文件,行,函数和地址.您还可以添加动态信息,如表达式,调用函数或callstack.添加线程信息和进程信息等功能可以帮助您在处理多个线程和/或进程时跟踪时序错误.
用例可以证明它在调试中非常有用:
在某种情况下,您可能希望调试一个被多次调用的函数(比如数百个),您可能只想查看局部变量发生变化的趋势.通过设置断点可以做到这一点,但是考虑在该函数停止(同时调试)数百次,并注意记下记事本中的值.使用tracepoint这样做很容易,它直接将日志放在" 输出 "窗口中,可以轻松分析甚至清除.节省数小时的人工和耐心.
"输出"窗口中的示例日志(可以运行到数百行):
keyframeNo = 2, time = 1100
keyframeNo = 1, time = 0
keyframeNo = 1, time = 1
keyframeNo = 1, time = 1
keyframeNo = 1, curTime =22
curTime=1132835, keyframeno=15
keyframeNo = 2, time = 1
keyframeNo = 2, time = 1
Run Code Online (Sandbox Code Playgroud)
如何使用它:
在代码> BreakPoint>插入TracePoint右键单击鼠标
使用TracePoint的优点:
根据MSDN:
跟踪点是Visual Studio中的新调试器功能.跟踪点是一个断点,其中包含与之关联的自定义操作.当命中跟踪点时,调试器将执行指定的跟踪点操作,而不是破坏程序执行,或者除此之外还执行指定的跟踪点操作.