mirror of
https://github.com/ARM-software/devlib.git
synced 2025-09-01 09:31:53 +01:00
ftrace: Turn TraceCollector into a context manager
This allows using an TraceCollector instance as a context manager, so tracing will stop even if the devlib application is interrupted, or if an exception is raised.
This commit is contained in:
committed by
Marc Bonnici
parent
fbf0875357
commit
22a5945460
@@ -323,17 +323,14 @@ You can collected traces (currently, just ftrace) using
|
||||
# the buffer size to be used.
|
||||
trace = FtraceCollector(t, events=['power*'], buffer_size=40000)
|
||||
|
||||
# clear ftrace buffer
|
||||
trace.reset()
|
||||
|
||||
# start trace collection
|
||||
trace.start()
|
||||
|
||||
# Perform the operations you want to trace here...
|
||||
import time; time.sleep(5)
|
||||
|
||||
# stop trace collection
|
||||
trace.stop()
|
||||
# As a context manager, clear ftrace buffer using trace.reset(),
|
||||
# start trace collection using trace.start(), then stop it Using
|
||||
# trace.stop(). Using a context manager brings the guarantee that
|
||||
# tracing will stop even if an exception occurs, including
|
||||
# KeyboardInterrupt (ctr-C) and SystemExit (sys.exit)
|
||||
with trace:
|
||||
# Perform the operations you want to trace here...
|
||||
import time; time.sleep(5)
|
||||
|
||||
# extract the trace file from the target into a local file
|
||||
trace.get_trace('/tmp/trace.bin')
|
||||
|
Reference in New Issue
Block a user