3 ms·
> Just ensure the invariant function is called at every method You make this sound way easier than I would expect it to be in the general case.
by Volt 4y ago
> Just ensure the invariant function is called at every method
You make this sound way easier than I would expect it to be in the general case.
- loeg 4y agoYou add something like: DCHECK(myInvariants()); to your method bodies. Sure, it makes it possible to forget, but it's not that hard to use.
- int_19h 4y agoA big part of DbC is that contracts are part of the public interface, not the implementation. This becomes especially important once you mesh them with Simula-style OOP, as derived classes need a way for overridden methods to widen or narrow the inherited contract.
- gavinray 4y agoThey're suggesting you write the output of the codegen shown in the image here: https://gavinray97.github.io/static/images/ghidra-check-invariants.png https://gavinray97.github.io/static/images/ghidra-check-inva... Yeah you totally could, and before writing this plugin it's what I was doing, haha. As there is a human involved, it is very error prone though, and boy is it tedious!