Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D dynamorio
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,467
    • Issues 1,467
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 44
    • Merge requests 44
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • DynamoRIO
  • dynamorio
  • Merge requests
  • !5090

i#4678: DrStateCmp, a library for machine state comparison.

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Sotiris Apostolakis requested to merge i4678-drstatecmp into master Sep 12, 2021
  • Overview 10
  • Commits 3
  • Pipelines 0
  • Changes 8

Implements drstatecmp, a library for machine state comparison for detecting instrumentation-induced clobbering of application state.

This implementation supports checks for side-effect-free basic blocks (with the exception of the terminating instruction that could be a function call with side effects). The check involves executing two versions of these basic blocks, one with instrumentation and one without, and then comparing the resulting state to detect bugs. When a mismatch is detected, by default, the disassembled basic block that involved the bug will be emitted.

Illustrates the use of the drstatecmp library by providing a sample client. This sample client introduces an instrumentation bug that is caught by drstatecmp. This sample client also shows how to specify a user-defined callback to be invoked on state comparison mismatches.

Originally part of #4938.

Issue: #4678

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: i4678-drstatecmp