2014-04-14 15 views

Trả lời

17

Các Debugger đội có một bài đăng blog tốt về chủ đề này với các ví dụ cũng như: http://blogs.msdn.com/b/visualstudioalm/archive/2013/10/10/tracepoints.aspx

Tracepoints không phải là một tính năng mới ở tất cả (họ được trong Visual Studio từ VS 2005). Và họ không phải là điểm ngắt cho mỗi người, vì họ không gây ra việc thực hiện chương trình để phá vỡ. Điều đó có thể hữu ích khi bạn cần kiểm tra điều gì đó, nhưng không dừng chương trình vì điều đó gây ra hành vi của một lỗi không repro, v.v.

Tracepoints là một nỗ lực để khắc phục sự cố khi bạn không thể dừng chương trình để kiểm tra một cái gì đó như vậy sẽ gây ra một số hành vi không repro, bằng cách cho phép một breakpoint để đăng nhập thông tin vào cửa sổ đầu ra gỡ lỗi và tiếp tục, mà không cần tạm dừng tại giao diện người dùng. Bạn cũng có thể làm điều này với các macro, nhưng nó có thể tốn nhiều thời gian hơn.

Để đặt điểm truy cập, trước tiên hãy đặt điểm ngắt trong mã. Sau đó, sử dụng menu ngữ cảnh trên điểm ngắt và chọn mục menu “Khi lần truy cập ...”. Bây giờ bạn có thể thêm các câu lệnh tường trình cho điểm ngắt và tắt hành động Dừng mặc định, để bạn đăng nhập và đi. Có một loạt thông tin khác mà bạn có thể thêm vào chuỗi nhật ký, bao gồm thông tin tĩnh về vị trí của tệp bp, chẳng hạn như tệp, dòng, hàm và địa chỉ. Bạn cũng có thể thêm thông tin động như biểu thức, chức năng gọi hoặc callstack. Những thứ như thêm thông tin luồng và thông tin quy trình có thể giúp bạn theo dõi lỗi thời gian khi xử lý nhiều luồng và/hoặc quy trình.

5

Theo MSDN:

Tracepoints là một tính năng gỡ lỗi mới trong Visual Studio. Một tracepoint là một breakpoint với một hành động tùy chỉnh liên kết với nó. Khi một tracepoint được nhấn, trình gỡ lỗi thực hiện hành động tracepoint được chỉ định thay vì, hoặc ngoài việc phá vỡ thực thi chương trình.

+0

Không thực sự chắc chắn nếu nó mới nữa, chúng đã được giới thiệu trong VS 2008 – Habib

2

Sử dụng trường hợp nó có thể chứng minh thực sự hữu ích:

Có thể một trường hợp khi bạn muốn để gỡ lỗi một chức năng mà được gọi là vô số lần (nói trong hàng trăm), và bạn chỉ có thể muốn để xem xu hướng trong đó biến cục bộ đang thay đổi. Làm điều này là có thể bằng cách đặt breakpoint, nhưng suy nghĩ về dừng (trong khi gỡ lỗi) tại chức năng đó hàng trăm lần và lấy nỗi đau ghi chú các giá trị trong notepad. Làm điều này là dễ dàng như vậy bằng cách sử dụng tracepoint, nó trực tiếp đặt các bản ghi trong "Đầu ra" cửa sổ, có thể dễ dàng phân tích hoặc thậm chí xóa. Tiết kiệm thời gian nỗ lực và kiên nhẫn thủ công.

Ví dụ log ở cửa sổ Output (có thể chạy đến hàng trăm dòng):

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 

Làm thế nào để sử dụng nó:

phải kích chuột vào mã> breakpoint> Insert TracePoint

Lợi thế của việc sử dụng TracePoint:

  • không cần phải thêm mã để tạo nhật ký. Vì vậy, không có căng thẳng để xây dựng mã, cũng không có phí làm sạch mã.
  • không cản trở luồng mã đang được triển khai, không giống như điểm ngắt.
  • Nó cũng có thể in giá trị của các biến cục bộ. Nhập {} local_variable sau khi nhấp vào "Khi Hit"
  • Bạn cũng có thể chèn tracepoints trong tiểu bang Debugging, cũng giống như bạn có thể làm cho breakpoint.
Các vấn đề liên quan