-
Notifications
You must be signed in to change notification settings - Fork 45
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
Conversation
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.
There was a problem hiding this 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: |
There was a problem hiding this comment.
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.
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 theinstrument-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.