Documentation ¶
Index ¶
- type CallCov
- type Corpus
- func (corpus *Corpus) CallCover() map[string]*CallCov
- func (corpus *Corpus) ChooseProgram(r *rand.Rand) *prog.Prog
- func (corpus *Corpus) Item(sig string) *Item
- func (corpus *Corpus) Items() []*Item
- func (corpus *Corpus) Minimize(cover bool)
- func (corpus *Corpus) Programs() []*prog.Prog
- func (corpus *Corpus) Save(inp NewInput)
- func (corpus *Corpus) Signal() signal.Signal
- type FocusArea
- type Item
- type ItemUpdate
- type NewInput
- type NewItemEvent
- type ProgramsList
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Corpus ¶
type Corpus struct { *ProgramsList StatProgs *stat.Val StatSignal *stat.Val StatCover *stat.Val // contains filtered or unexported fields }
Corpus object represents a set of syzkaller-found programs that cover the kernel up to the currently reached frontiers.
func NewFocusedCorpus ¶
func NewFocusedCorpus(ctx context.Context, updates chan<- NewItemEvent, areas []FocusArea) *Corpus
func NewMonitoredCorpus ¶
func NewMonitoredCorpus(ctx context.Context, updates chan<- NewItemEvent) *Corpus
type Item ¶
type Item struct { Sig string Call int Prog *prog.Prog HasAny bool // whether the prog contains squashed arguments Signal signal.Signal Cover []uint64 Updates []ItemUpdate // contains filtered or unexported fields }
Item objects are to be treated as immutable, otherwise it's just too hard to synchonize accesses to them across the whole project. When Corpus updates one of its items, it saves a copy of it.
func (Item) StringCall ¶
type ItemUpdate ¶
It may happen that a single program is relevant because of several sysalls. In that case, there will be several ItemUpdate entities.
type NewItemEvent ¶
type ProgramsList ¶
type ProgramsList struct {
// contains filtered or unexported fields
}
Click to show internal directories.
Click to hide internal directories.