On Wed, 2021-07-28 at 04:10 -0700, Dinesh Kumar wrote:
> Thank you Martin.
> I will try out point A as mentioned by you.
>
> The code is not share-able here. apologies.
>
> I am trying to check the robustness properties like --bounds-check
> ,
> --pointer-check , --memory-leak-check , --div-by-zero-check ,
> --signed-overflow-check , --unsigned-overflow-check ,
> --pointer-overflow-check , --conversion-check , --undefined-shift-
> check
> , --float-overflow-check , --nan-check.
>
> I am using -unwind option and slicing ( --slice-formula --partial-
> loops
> --unwind 25 )
I would try starting at --unwind 1 and then working upwards and see
what point you run into memory limits.
It is also worth using CBMC on a 64 bit processor if possible. Ideally
with as much RAM as you can get (I would avoid using swap for CBMC; it
likely won't help performance). You might also want to try a more
modern release than 5.12.
> Could you give some hint about this "Use the contracts support to
> abstract
> away some functions." ?
https://github.com/diffblue/cbmc/blob/develop/doc/cprover-manual/contracts.md
is the documentation for function contracts but without knowing
anything about your code it is very hard for me to say if that is
appropriate or how they can be best used.
Cheers,
- Martin