Highlights
✨ Filter parse-live like syslog live, with the matches highlighted
core-profile-session parse-live takes syslog live's text filters:
-m/-mi: every one must match.-v/-vi: none may match.-r/-ri: any regex is enough.
The i variants ignore case. The regexes are -r/-ri because -e is --event. Filters match the printed line (time, process and event), also with --json, and the matches are drawn bold and underlined. Lines a filter drops are never colored, so a selective filter keeps up even better than no filter.
pymobiledevice3 developer dvt core-profile-session parse-live --fs -mi sqlite -v .db-journal⚠️ parse-live fails instead of silently skipping events when it falls behind
Once its output is more than --max-lag (2s by default, now an option) behind the device, parse-live stops with an error saying how to continue. --skip-behind brings back skipping ahead to recent events with a warning, which used to be the default. When it stops, it prints whether it kept up:
Read 327474 events, the kernel dropped events 0 times, 0 events were skipped to catch up
🐛 Ctrl-C no longer hangs or aborts the live commands
live, parse-live and callstacks-live could hang forever on exit when interrupted during a busy trace. They also could abort with Fatal Python error: _enter_buffered_busy. The printing thread is now stopped and joined before exiting.
🧩 One event selection for the device and the Mac
parse-live's selection (the syscall and user space event groups, -s, -e, and what events lists) now comes from pykdebugparser, whose own parse-live traces the Mac it runs on with the same options. pykdebugparser 1.9.0 is now required. It also brings:
--dyldno longer ends a trace withKeyError.- With
-sor a group, path lookups no selected syscall takes are dropped right after decoding, so a rare syscall parses ~1.5x faster.
What's Changed
- 8fe6d73 core_profile_session: Filter parse-live's traces like syslog live, with -m, -v, -mi, -vi, -r and -ri (#2067) (@doronz88)
- 66105a6 core_profile_session: Stop the live printing thread before exiting (#2067) (@doronz88)
- e5b8ec8 tests: Keep the thread's event loop in the daemon thread test (#2066) (@doronz88)
- 6b52a41 core_profile_session: Select parse-live's events with pykdebugparser 1.8.0's selection (#2066) (@doronz88)
- c45dee4 core_profile_session: Require pykdebugparser 1.7.0, and use its event selection helpers (#2066) (@doronz88)
- 56bdcc8 core_profile_session: Fail parse-live when it falls behind, and tell whether it kept up (#2066) (@doronz88)
- 1f98076 core_profile_session: Never hang on exit when a live command is interrupted (#2066) (@doronz88)
Full Changelog: v11.39.0...v11.40.0