-
Notifications
You must be signed in to change notification settings - Fork 197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DKII consistency failures #232
Comments
I might see what is going wrong...
So we decide that this vftable belongs to the current constructor based on the vftable write. Here is the vftable write:
In other words, we install this vftable into a new heap-allocated object, not the "this" object this constructor is constructing. I think this is a side-effect of a change we made recently that exported possibleVFTableFacts for non-this objects. The solution is to validate that the vftable write is in "this" object. I am trying this now. |
I think this should fix it: cf77c93 It certainly doesn't fail as quickly, but my run of DKII hasn't completed yet. |
This causes a regression in our unit tests:
We are no longer able to associate the vbase destructor with the correct class. Binary ninja says the function simplifies to:
Statement 0 installs std::ostream::vftable. This is obviously accessing a virtual base offset, which is why the change breaks things. This is unavoidable I think until we improve our support for virtual bases. |
@Trass3r Take a look at this? |
The patch in master...sei-eschwartz:pharos:master (also mentioned in #227 (comment)) indeed made it run to the end. |
Not sure if this is still related to the original problem but it still doesn't run through:
Originally posted by @Trass3r in #209 (comment)
The text was updated successfully, but these errors were encountered: