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

UBet specific adaptations #6553

Merged
merged 7 commits into from
May 25, 2023
Merged

UBet specific adaptations #6553

merged 7 commits into from
May 25, 2023

Conversation

hbrodin
Copy link
Collaborator

@hbrodin hbrodin commented May 17, 2023

UBet uses a tainted control flow log to get the data needed to detect variability bugs. This is the instrumentation changes that were done to support it.

To enable the Control Affecting Dataflow log, invoke the instrument-targets command using --cflog in addition to the --taint and/or --ftrace arguments.

There is still some overlap between the features but we can unify that over time. This PR should be non-intrusive in that it shouldn't impact any of the existing functionality.

Enables logging of control affecting data flow by specifying the --cflog
argument to the `instrument-targets` command.
Adds support for a new section in the TDAG, adds the instrumentation step
and instrumentation callback handlers.
@hbrodin hbrodin marked this pull request as ready for review May 22, 2023 12:44
@hbrodin hbrodin requested review from surovic and ESultanik and removed request for surovic May 23, 2023 05:19
Copy link
Collaborator

@surovic surovic left a comment

Choose a reason for hiding this comment

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

Disclaimer: I haven't read the PR in full. I got to the instrumentation pass and cflog tdag section. It seems to me like there's a significant overlap between this instrumentation and the existing function tracing, namely with the function entry and exit logging. Am I missing something?

_extract_bitcode(target_path, bc_path)
_optimize_bitcode(bc_path, bc_path)
if args.cflog:
Copy link
Collaborator

Choose a reason for hiding this comment

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

nitpick: I would just overwrite bc_path here with <path>.preopt.bc or <path>opt.bc and make a single _optimize_bitcode(...) call.

polytracker/include/taintdag/control_flow_log.h Outdated Show resolved Hide resolved
@hbrodin hbrodin mentioned this pull request May 25, 2023
@surovic surovic self-requested a review May 25, 2023 12:24
@hbrodin hbrodin merged commit 8c29f9e into master May 25, 2023
9 checks passed
@hbrodin hbrodin deleted the Henrik/ubetmerge branch May 25, 2023 12:32
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.

None yet

2 participants