MCPcopy Create free account
hub / github.com/rabbitstack/fibratus / updateSnapshotters

Method updateSnapshotters

pkg/cap/reader_windows.go:180–220  ·  view source on GitHub ↗
(evt *event.Event)

Source from the content-addressed store, hash-verified

178}
179
180func (r *reader) updateSnapshotters(evt *event.Event) error {
181 switch evt.Type {
182 case event.TerminateProcess:
183 if err := r.psnapshotter.Remove(evt); err != nil {
184 return err
185 }
186 case event.TerminateThread:
187 pid := evt.Params.MustGetPid()
188 tid := evt.Params.MustGetTid()
189 if err := r.psnapshotter.RemoveThread(pid, tid); err != nil {
190 return err
191 }
192 case event.UnloadModule:
193 pid := evt.Params.MustGetPid()
194 addr := evt.Params.TryGetAddress(params.ModuleBase)
195 if err := r.psnapshotter.RemoveModule(pid, addr); err != nil {
196 return err
197 }
198 case event.CreateProcess,
199 event.ProcessRundown,
200 event.LoadModule,
201 event.ModuleRundown,
202 event.CreateThread,
203 event.ThreadRundown:
204 if err := r.psnapshotter.WriteFromCapture(evt); err != nil {
205 return err
206 }
207 case event.CreateHandle:
208 if err := r.hsnapshotter.Write(evt); err != nil {
209 return err
210 }
211 case event.CloseHandle:
212 if err := r.hsnapshotter.Remove(evt); err != nil {
213 return err
214 }
215 }
216 if evt.PS == nil {
217 _, evt.PS = r.psnapshotter.Find(evt.PID)
218 }
219 return nil
220}
221
222func (r *reader) RecoverSnapshotters() (handle.Snapshotter, ps.Snapshotter, error) {
223 hsnap, err := r.recoverHandleSnapshotter()

Callers 1

ReadMethod · 0.95

Calls 9

MustGetPidMethod · 0.80
MustGetTidMethod · 0.80
TryGetAddressMethod · 0.80
RemoveMethod · 0.65
RemoveThreadMethod · 0.65
RemoveModuleMethod · 0.65
WriteFromCaptureMethod · 0.65
WriteMethod · 0.65
FindMethod · 0.65

Tested by

no test coverage detected