Skip to content
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

feat: implemented timeout correctly (#74) #97

Merged
merged 1 commit into from
Dec 4, 2020

Conversation

alexanderlackner
Copy link
Contributor

@alexanderlackner alexanderlackner commented Dec 3, 2020

Solver now times out after a certain amount of time has passed. Timeouts are now handled like other errors.
Closes #74.

Copy link
Collaborator

@ChristianMoesl ChristianMoesl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good to me, I actually thought you will create a new error type instead of using EngineError, because architecturally speaking, the solver should not depend on the engine, because the engine will naturally depend on the solver and you do not want cyclic dependencies. (Makes sense right?) But I can refactor that.

@ChristianMoesl ChristianMoesl merged commit 9085969 into master Dec 4, 2020
@delete-merged-branch delete-merged-branch bot deleted the feat-impl-timeout branch December 4, 2020 13:15
ChristianMoesl pushed a commit that referenced this pull request Dec 4, 2020
@alexanderlackner
Copy link
Contributor Author

Ah ok I misunderstood you then. Yes of course that makes sense thanks for taking care of that.

github-actions bot pushed a commit that referenced this pull request Jan 20, 2021
# [0.1.0](v0.0.1...v0.1.0) (2021-01-20)

### Bug Fixes

* BEQ for concrete conditions does not create a constrain ([#44](#44)) ([#45](#45)) ([8ca6ec9](8ca6ec9))
* beq/jal edges ([870bf6e](870bf6e))
* bug in z3 interface where wrong symbolic constants are used ([0fd3de6](0fd3de6))
* CFG computation for loops ([#57](#57)) ([80b8859](80b8859))
* command line parsing ([#37](#37)) ([d20c954](d20c954))
* constraints are now properly displayed in data-flow graphs ([9fa61d0](9fa61d0))
* data segment loading ([#54](#54)) ([4ec4f1d](4ec4f1d))
* dead code elimination now working properly for data-flow graphs ([114e75d](114e75d))
* divu now properly implemented ([#105](#105)) ([b4ee0aa](b4ee0aa))
* fixing divu exit point collection for candidate path generation ([c531663](c531663))
* fold all constants in SMT query ([#100](#100)) ([#101](#101)) ([a2dfc0a](a2dfc0a)), closes [#102](#102) [#103](#103) [#102](#102)
* implemented fix for exit ecall edge ([4cfb9e0](4cfb9e0))
* minor mistakes ([#26](#26)) ([a8e6fbc](a8e6fbc))
* operand side edges ([#70](#70)) ([c7b9c00](c7b9c00))
* recursion support for shortest path heursitic ([#69](#69)) ([#76](#76)) ([914f24e](914f24e))
* small mistakes fixed ([83b637d](83b637d))
* use ugt SMT-lib operator for SLTU ([94213cd](94213cd))

### Features

* ability to print SMT-lib format ([c8c6898](c8c6898))
* add "execution depth" as abort criteria ([#90](#90)) ([4b4829d](4b4829d))
* add banch decisions to test DFG generation with BEQ constrains ([f5e96e2](f5e96e2))
* add candidate path algorithm and generation of a formula graph (WIP) ([83cf753](83cf753))
* add CLI argument for CFG ([0a5493b](0a5493b))
* add CLI option for symbolic execution ([#43](#43)) ([#48](#48)) ([ce3f6fe](ce3f6fe))
* add CLI option to configure memory size of executor ([f30f4f7](f30f4f7))
* add command line argument parsing ([7f21061](7f21061))
* add smt generation and solving ([#38](#38)) ([fab1457](fab1457)), closes [#16](#16)
* add support for division by zero and memory access errors ([#77](#77)) ([#79](#79)) ([e7dc16f](e7dc16f))
* add Z3 SMT solver support ([#68](#68)) ([af9ef1b](af9ef1b))
* basic facilities for candidate path generation ([64a9fe8](64a9fe8))
* candidate path generation (Needs testing) ([43723a2](43723a2))
* compute edges for BEQ instruction ([6ff5ebc](6ff5ebc))
* dead code elimination updated ([97caddd](97caddd))
* eagerly evaluate PC in BEQ instructions ([0ef582c](0ef582c))
* first attempt to build a CFG and enabled formatter/linter ([a09a934](a09a934))
* functions for finding candidate path root nodes (WIP) ([9fd31ab](9fd31ab))
* generate all candidate paths for a given binary ([#7](#7)) ([#46](#46)) ([c00b605](c00b605))
* generate dataflow graph from RISC-U path and add Selfie as compiler ([5f36c4d](5f36c4d))
* implement bit vector remainder operand in monster solver ([#107](#107)) ([5cb4f26](5cb4f26))
* implement dataflow graph generation (WIP) ([5078ccd](5078ccd))
* implement DIVU in Monster solver and tests ([#72](#72)) ([c8f9d3d](c8f9d3d))
* implement Propagation Based Local Search for simple Formula ([#25](#25)) ([396fbbe](396fbbe))
* implement shortest path heuristic for path exploration ([#60](#60)) ([#61](#61)) ([453a615](453a615))
* implement SLTU in Monster solver ([#58](#58)) ([#73](#73)) ([bf7f8f7](bf7f8f7))
* implement SUB in the native solver ([#62](#62)) ([#63](#63)) ([8ccfd5d](8ccfd5d))
* implemented sltu in boolector and z3 ([#75](#75)) ([#80](#80)) ([af5b364](af5b364))
* implemented timeout correctly ([#74](#74)) ([#97](#97)) ([867a240](867a240))
* improve command line argument parsing and handling ([a50c59d](a50c59d))
* improve terminal output by using a logging library ([#66](#66)) ([#67](#67)) ([465e35c](465e35c))
* naive implementation of a RISC-U disassembler ([db125f6](db125f6))
* prototypical implementation to load ELF object files ([4caf390](4caf390))
* reduce executed candidate paths ([#55](#55)) ([#64](#64)) ([31420ed](31420ed))
* remove log header on default terminal output ([#94](#94)) ([92cce66](92cce66))
* some stubs for (ternary) bit vectors ([#9](#9)) ([b89220d](b89220d))
* started working on dead code elimination (WIP) ([a81708c](a81708c))
* stubs for dataflow graph ([11aa224](11aa224))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement Timeout in Solver
2 participants