Skip to content

Conversation

@cadmic
Copy link
Contributor

@cadmic cadmic commented Jun 10, 2025

Currently dtk fails to analyze most of cinePlayer.cpp ActorInstance::checkEventKeys, because it stores a jump table on the stack and dtk can't track this. Instead of giving up, we now add to possible_missed_branches after unknown jumps too.

@encounter
Copy link
Owner

Thank you! I think I'd like to further restrict this logic just to avoid potentially being too greedy after returns. Does only applying this for BranchTarget::JumpTable { address: RelocationTarget::External, .. } work?

@encounter
Copy link
Owner

I adjusted it to not add to possible_missed_branches on BranchTarget::Return, but kept it for BranchTarget::Unknown | BranchTarget::JumpTable { address: RelocationTarget::External, .. }.

@encounter encounter merged commit 7bc0bc4 into encounter:main Jun 10, 2025
16 checks passed
@cadmic cadmic deleted the jumptable-missed-branches branch June 10, 2025 05:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants