Skip to content

Conversation

@NicoleFaye
Copy link

@NicoleFaye NicoleFaye commented Jan 19, 2026

Added time range filter for ttd code coverage analysis.
Adjusted code coverage highlight alpha 1/4 -> 2/3
Fixed info log being incorrectly written to error stream for saving cached analysis results.
Added gitignore entries for windows build related artifacts

First time contributing to the repo. I vaguely understand there is an agreement i may need to sign if the code is accepted.

Let me know if there is anything i can do to improve this PR for future reference/contribution.

fixes #960 #966 #967

@CLAassistant
Copy link

CLAassistant commented Jan 19, 2026

CLA assistant check
All committers have signed the CLA.

@xusheng6
Copy link
Member

Hi @NicoleFaye , thanks a lot for the PR. This looks like a nice addition, I will review it when I can

@xusheng6 xusheng6 self-requested a review January 19, 2026 06:28
@NicoleFaye
Copy link
Author

NicoleFaye commented Jan 19, 2026

upon further examination. it seems like it might be more appropriate to implement a call to
dx @$cursession.TTD.MemoryForPositionRange(startAddress, endAddress, "accessType", minPosition, maxPosition)

instead of manually filtering time positions on a generic memory query.

I can implement a change in logic, but wanted to add this comment before then.

My main concern with this possible change would be it's not generic enough to work with time travel debuggers other than windbg, I haven't looked too deeply at how the adapters work. or if this coverage analysis is specific to windbg.

@xusheng6
Copy link
Member

upon further examination. it seems like it might be more appropriate to implement a call to dx @$cursession.TTD.MemoryForPositionRange(startAddress, endAddress, "accessType", minPosition, maxPosition)

instead of manually filtering time positions on a generic memory query.

I can implement a change in logic, but wanted to add this comment before then.

My main concern with this possible change would be it's not generic enough to work with time travel debuggers other than windbg, I haven't looked too deeply at how the adapters work. or if this coverage analysis is specific to windbg.

I think this is fantastic idea!

Also I would ask you to kindly test to make sure MemoryForPositionRange actually limits the query range rather than just filter it. The way to test is to get a reasonably large trace, and run the same query with and without a time range (ideally the time range is small). Expect the one with a time range runs much faster. Note you need to totally reset the debugger (close binja/windbg) because the query results are cached, and that would surely affect the accuracy of the comparison

Once you get that API, if you feel like to, you could also switch this dialog to use the new API:

image

You probably want to move the start/end address to the same line, and add a new start/end time beneath it

@xusheng6
Copy link
Member

Please also create a separate issue to track the other enhancements made in this PR, which helps us better keep track of things!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TTD coverage highlight is not super obvious to see

3 participants