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