Skip to content

generate-function-body creates goto binaries that can't be analysed #2663

Open
@polgreen

Description

@polgreen

I want to generate a function body for any function that currently has no body, and I want that body to havoc all params that it can havoc. Essentially I want to do what this PR did: #1585

I am running the command

goto-instrument --generate-function-body '.*' --generate-function-body-options 'havoc,params:.*' input.binary output.binary

The input binary is available here:
https://drive.google.com/open?id=1SD9qIH9e8l4KPP0TQgvDAEZNUWNL9oXd

Once the output binary is generated, I would like to run CBMC on that:

cbmc --unwind 1 --stop-on-fail --object-bits 16 output.binary --trace

This gives the violated invariant:

Invariant check failed
File ../util/std_types.h function to_struct_union_type line 282
Reason: Precondition

In order to debug this violated invariant, I would like to view the goto functions, so I run

goto-instrument --show-goto-functions output.binary

This generates the violated invariant:

File mode.cpp function get_language_from_identifier line 93
Reason: symbol `gcc_builtin_va_arg' has unknown mode ''

I am using CBMC from Michael's xen-combined branch, which is up to date with develop at 6a10f1a

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions