KirillOsenkov / MSBuildStructuredLog

A logger for MSBuild that records a structured representation of executed targets, tasks, property and item values.
MIT License
1.44k stars 190 forks source link

Find in Timeline/Tracing #572

Closed reznet closed 2 years ago

reznet commented 2 years ago

Is there a way to find a log in the Timeline or Tracing view? I'm debugging a race condition in a muli-core build and would like to see what other tasks are running at the same time. I have an error line selected in the Search Log view and would like the find the corresponding timestamp/record in the Timeline or Tracing view, with Tracing view being preferred. However, there doesn't seem to be a way to find anything in the Tracing view without scrolling and visually searching. Is there already a way to select a record in the Log view and find the corresponding record in the Tracing view? Would this be possible?

suggested label: enhancement

KirillOsenkov commented 2 years ago

You can right-click on a node in the tree and say Go To Timeline. Not sure this is implemented for tracing.

From the timeline, you can go back to the tree by double-clicking a rectangle.

reznet commented 2 years ago

Ah! I didn't see that. Very cool that it's already implemented. I've got a local copy where I've added a context menu to go to the node in the tracing window, and it works but there's a bug where the first time you use the menu item, the Tracing tab scrolls to 0,0. If you then go back to the Log tab and select the node again and again select my new 'Go to tracing' menu item, then it goes to the Tracing tab and correctly scrolls to the item. Do you know why this might be?

If you want to try it out, my changes are at https://github.com/reznet/MSBuildStructuredLog/commit/0ebfa9cfc7dfdee5e0649fa4d37ee75239b3024f

KirillOsenkov commented 2 years ago

thanks, I'd love to take a look someday, but not sure when I will find time. If you submit a PR, I'll remember to look into it when I have time. Thanks!

KirillOsenkov commented 2 years ago

it's OK if it's not quite working, anything helps

reznet commented 2 years ago

submitted #573

KirillOsenkov commented 2 years ago

I've figured out why the scrolling to the item didn't work the first time. The sizes of the blocks weren't calculated yet, so we don't know to which location to scroll to. If we call GoTo after a layout has happened, we get the real coordinates.