github doronz88/pymobiledevice3 v11.40.0

5 hours ago

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:

  • --dyld no longer ends a trace with KeyError.
  • With -s or 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

Don't miss a new pymobiledevice3 release

NewReleases is sending notifications on new releases.