EnglishFrenchSpanish

OnWorks favicon

creduce - Online in the Cloud

Run creduce in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command creduce that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

NAME


creduce - C and C++ program reducer

DESCRIPTION


creduce 2.5.0 (unknown) -- a C and C++ program reducer

C-Reduce requires an "interestingness test" and one or more files to reduce, which must be
writable. The interestingness test is an executable program (usually a shell script) that
returns 0 when a partially reduced file is interesting (a candidate for further reduction)
and returns non-zero when a partially reduced file is not interesting (not a candidate for
further reduction -- all uninteresting files are discarded).

C-Reduce runs the interestingness test in a fresh temporary directory containing only the
partially reduced file(s). Thus, when the interestingness test examines a partially
reduced file, it must do so using a relative path to the current working directory. On the
other hand, when the interestingness test refers to any file that is not being reduced,
this should be done using an absolute path.

The interestingness test should not expect any command line arguments. It should be
deterministic and might want to enforce resource limits on sub-commands that it invokes
(e.g. using ulimit). In particular, C-Reduce is known to sometimes introduce an infinite
loop into the program being reduced. Therefore, if the interestingness test runs the
compiled program, it probably should do so under a timeout.

As a quick example, if you consider a file to be interesting if GCC's vectorizer fires
while compiling it, you might use this interestingness test:

gcc -w -O3 foo.c -S && grep xmm foo.s

To see if your interestingness test is working, try running these commands:

DIR=`mktemp -d` cp file_to_reduce [optionally, more files to reduce] $DIR cd $DIR
/path/to/interestingness_test echo $?

This should result in "0" being echoed to the terminal. If this does not happen, the
interestingness test is flawed and C-Reduce won't be able to make use of it.

If you haven't written an interestingness test before, please refer to this tutorial for
additional guidance:

https://embed.cs.utah.edu/creduce/using/

If at all possible, run C-Reduce on preprocessed code, generated for example using:

gcc -E -P file.c

If you cannot reduce preprocessed code, you can either reduce just the non-preprocessed
file or else perform a multi-file reduction on the file and its transitive includes (or
any subset of them). In the first case you need to set the CREDUCE_INCLUDE_PATH
environment variable to a colonseparated list of include directories in order for
clang_delta to find them.

If your interestingness test involves a cross compiler and the characteristics of the
cross target differs from the host you will need to set CREDUCE_TARGET_TRIPLE to match the
cross target. This is particularly important if you are working with non-preprocessed code
and use CREDUCE_INCLUDE_PATH.

Press "s" at any time to skip to the next pass (this feature is disabled unless the Perl
module Term::ReadKey is available on your system).

Summary of options:
--add-pass <pass> <sub-pass> <priority>
Add the specified pass to the schedule

--also-interesting <exitcode>
A process exit code (somewhere in the range 64-113 would be usual) that, when
returned by the interestingness test, will cause C-Reduce to save a copy of the
variant [default: -1]

--debug
Print debug information

--die-on-pass-bug
Terminate C-Reduce if a pass encounters an otherwise non-fatal problem

--max-improvement <bytes>
Largest improvement in file size from a single transformation that C-Reduce should
accept (useful only to slow C-Reduce down)

--n <N>
Number of cores to use; C-Reduce tries to automatically pick a good setting but its
choice may be too low or high for your situation [default: 2]

--no-default-passes
Start with an empty pass schedule

--no-give-up
Don't give up on a pass that hasn't made progress for 50000 iterations

--nokill
Wait for parallel instances to terminate on their own instead of killing them (only
useful for debugging)

--print-diff
Show changes made by transformations, for debugging

--sanitize
Attempt to obscure details from the original source file

--save-temps
Don't delete /tmp/creduce-x directories on termination

--shaddap
Suppress output about non-fatal internal errors

--skip-initial-passes
Skip initial passes (useful if input is already partially reduced)

--skip-key-off
Disable skipping the rest of the current pass when "s" is pressed

--sllooww
Try harder to reduce, but perhaps take a long time to do so

--tidy Do not make a backup copy of each file to reduce as file.orig

--timing
Print timestamps about reduction progress

usage: creduce [options] interestingness_test file_to_reduce [optionally, more files to
reduce]

creduce --help for more information

Use creduce online using onworks.net services


Free Servers & Workstations

Download Windows & Linux apps

  • 1
    PAC Manager
    PAC Manager
    PAC is a Perl/GTK replacement for
    SecureCRT/Putty/etc (linux
    ssh/telnet/... gui)... It provides a GUI
    to configure connections: users,
    passwords, EXPECT regula...
    Download PAC Manager
  • 2
    GeoServer
    GeoServer
    GeoServer is an open-source software
    server written in Java that allows users
    to share and edit geospatial data.
    Designed for interoperability, it
    publishes da...
    Download GeoServer
  • 3
    Firefly III
    Firefly III
    A free and open-source personal finance
    manager. Firefly III features a
    double-entry bookkeeping system. You can
    quickly enter and organize your
    transactions i...
    Download Firefly III
  • 4
    Apache OpenOffice Extensions
    Apache OpenOffice Extensions
    The official catalog of Apache
    OpenOffice extensions. You'll find
    extensions ranging from dictionaries to
    tools to import PDF files and to connect
    with ext...
    Download Apache OpenOffice Extensions
  • 5
    MantisBT
    MantisBT
    Mantis is an easily deployable, web
    based bugtracker to aid product bug
    tracking. It requires PHP, MySQL and a
    web server. Checkout our demo and hosted
    offerin...
    Download MantisBT
  • 6
    LAN Messenger
    LAN Messenger
    LAN Messenger is a p2p chat application
    for intranet communication and does not
    require a server. A variety of handy
    features are supported including
    notificat...
    Download LAN Messenger
  • More »

Linux commands

  • 1
    abidw
    abidw
    abidw - serialize the ABI of an ELF
    file abidw reads a shared library in ELF
    format and emits an XML representation
    of its ABI to standard output. The
    emitted ...
    Run abidw
  • 2
    abilint
    abilint
    abilint - validate an abigail ABI
    representation abilint parses the native
    XML representation of an ABI as emitted
    by abidw. Once it has parsed the XML
    represe...
    Run abilint
  • 3
    coresendmsg
    coresendmsg
    coresendmsg - send a CORE API message
    to the core-daemon daemon ...
    Run coresendmsg
  • 4
    core_server
    core_server
    core_server - The primary server for
    SpamBayes. DESCRIPTION: Currently serves
    the web interface only. Plugging in
    listeners for various protocols is TBD.
    This ...
    Run core_server
  • 5
    fwflash
    fwflash
    fwflash - program to flash image file
    to a connected NXT device ...
    Run fwflash
  • 6
    fwts-collect
    fwts-collect
    fwts-collect - collect logs for fwts
    bug reporting. ...
    Run fwts-collect
  • More »

Ad