bisect

package
v0.0.0-...-d374ac5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 21, 2020 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const NumTests = 10 // number of tests we do per commit

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Trace     io.Writer
	Fix       bool
	BinDir    string
	DebugDir  string
	Kernel    KernelConfig
	Syzkaller SyzkallerConfig
	Repro     ReproConfig
	Manager   mgrconfig.Config
}

type KernelConfig

type KernelConfig struct {
	Repo      string
	Branch    string
	Commit    string
	Cmdline   string
	Sysctl    string
	Config    []byte
	Userspace string
}

type ReproConfig

type ReproConfig struct {
	Opts []byte
	Syz  []byte
	C    []byte
}

type Result

type Result struct {
	Commits    []*vcs.Commit
	Report     *report.Report
	Commit     *vcs.Commit
	NoopChange bool
	IsRelease  bool
}

Result describes bisection result:

  • if bisection is conclusive, the single cause/fix commit in Commits
  • for cause bisection report is the crash on the cause commit
  • for fix bisection report is nil
  • Commit is nil
  • NoopChange is set if the commit did not cause any change in the kernel binary (bisection result it most likely wrong)
  • Bisected to a release commit
  • if bisection is inconclusive, range of potential cause/fix commits in Commits
  • report is nil in such case
  • Commit is nil
  • if the crash still happens on the oldest release/HEAD (for cause/fix bisection correspondingly)
  • no commits in Commits
  • the crash report on the oldest release/HEAD;
  • Commit points to the oldest/latest commit where crash happens.

func Run

func Run(cfg *Config) (*Result, error)

Run does the bisection and returns either the Result, or, if the crash is not reproduced on the start commit, an error.

type SyzkallerConfig

type SyzkallerConfig struct {
	Repo         string
	Commit       string
	Descriptions string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL