Chúng chỉ có thể được đặt trên tên phương thức. Chúng được sử dụng như thế nào và chúng là gì?Tracepoint được sử dụng để làm gì?
Trả lời
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.
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.
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
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:
- Có 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ã.
- Nó 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.
- 1. GCC_NO_COMMON_BLOCKS được sử dụng để làm gì?
- 2. nbactions.xml được sử dụng để làm gì?
- 3. CookieAuthenticationOptions.AuthenticationType được sử dụng để làm gì?
- 4. Sqlite được sử dụng để làm gì?
- 5. + = Được sử dụng để làm gì?
- 6. .data.rel.ro được sử dụng để làm gì?
- 7. Maven.multiModuleProjectDirectory được sử dụng để làm gì?
- 8. sigaddset được sử dụng để làm gì?
- 9. iframe được sử dụng để làm gì?
- 10. python được sử dụng để làm gì?
- 11. #pragma được sử dụng để làm gì?
- 12. _references.js được sử dụng để làm gì?
- 13. @@ DEF_SORTORDER_ID được sử dụng để làm gì?
- 14. "Dải" (ứng dụng GCC) được sử dụng để làm gì?
- 15. Miền ứng dụng được sử dụng để làm gì?
- 16. In thời gian hiện tại trong cửa sổ đầu ra bằng cách sử dụng TracePoint
- 17. Khi nào thuộc tính @JsonProperty được sử dụng và nó được sử dụng để làm gì?
- 18. Phần COMDAT được sử dụng để làm gì?
- 19. Test-and-Set được sử dụng để làm gì?
- 20. Google Analytics '__utm.gif được sử dụng để làm gì?
- 21. Java - "@Override" được sử dụng để làm gì?
- 22. GlVertexAttrib (so với glVertexAttribPointer) được sử dụng để làm gì?
- 23. Android: Android.R.id.content được sử dụng để làm gì?
- 24. Khóa reentrance trong java được sử dụng để làm gì?
- 25. Thư mục .git/branches được sử dụng để làm gì?
- 26. LINK rel = subresource được sử dụng để làm gì?
- 27. Cookie _gat (Google Analytics) được sử dụng để làm gì?
- 28. JavaScript: .extend và .prototype được sử dụng để làm gì?
- 29. Từ khóa python "có" được sử dụng để làm gì?
- 30. Thư mục .link_to_grails_plugins được sử dụng để làm gì?
Tại sao có điểm ngắt trên nhận xét? – stackptr