pykdebugparser 1.6.0__py2.py3-none-any.whl → 1.6.1__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2837,13 +2837,22 @@ DARWIN_SIGNALS = (None, 'SIGHUP', 'SIGINT', 'SIGQUIT', 'SIGILL', 'SIGTRAP', 'SIG
2837
2837
  'SIGWINCH', 'SIGINFO', 'SIGUSR1', 'SIGUSR2')
2838
2838
 
2839
2839
 
2840
+ def pid(value: int) -> int:
2841
+ """A `pid_t` argument: a C int, where -1 means any and a negative pid a process group (`kill(-pgid, sig)`)."""
2842
+ return ctypes.c_int32(value).value
2843
+
2844
+
2845
+ def signal_name(sig: int) -> str:
2846
+ """A Darwin signal by name (`SIGTERM`), or its number (0 only checks that the target exists)."""
2847
+ return DARWIN_SIGNALS[sig] if 0 < sig < len(DARWIN_SIGNALS) else str(sig)
2848
+
2849
+
2840
2850
  def format_wait_status(status: int) -> str:
2841
2851
  """Describe a wait status (`W_EXITCODE(code, signal)`) as its exit code or terminating signal."""
2842
2852
  signal = status & 0x7f
2843
2853
  if not signal:
2844
2854
  return f'exit code: {(status >> 8) & 0xff}'
2845
- name = DARWIN_SIGNALS[signal] if signal < len(DARWIN_SIGNALS) else str(signal)
2846
- return f'signal: {name}' + (', core dumped' if status & 0x80 else '')
2855
+ return f'signal: {signal_name(signal)}' + (', core dumped' if status & 0x80 else '')
2847
2856
 
2848
2857
 
2849
2858
  @dataclass
@@ -3034,7 +3043,7 @@ class BscPthreadKill:
3034
3043
  result: str
3035
3044
 
3036
3045
  def __str__(self):
3037
- rep = f'pthread_kill({self.thread_port}, {self.sig})'
3046
+ rep = f'pthread_kill({self.thread_port}, {signal_name(self.sig)})'
3038
3047
  if self.result:
3039
3048
  rep += f', {self.result}'
3040
3049
  return rep
@@ -3063,7 +3072,7 @@ class BscKill:
3063
3072
  result: str
3064
3073
 
3065
3074
  def __str__(self):
3066
- rep = f'kill({self.pid}, {self.sig})'
3075
+ rep = f'kill({self.pid}, {signal_name(self.sig)})'
3067
3076
  if self.result:
3068
3077
  rep += f', {self.result}'
3069
3078
  return rep
@@ -3991,7 +4000,7 @@ class BscObsKillpg:
3991
4000
  result: str
3992
4001
 
3993
4002
  def __str__(self):
3994
- rep = f'killpg({self.pgrp}, {self.sig})'
4003
+ rep = f'killpg({self.pgrp}, {signal_name(self.sig)})'
3995
4004
  if self.result:
3996
4005
  rep += f', {self.result}'
3997
4006
  return rep
@@ -5485,7 +5494,7 @@ def handle_bsdthread_terminate(parser, events):
5485
5494
 
5486
5495
  def handle_wait4(parser, events, no_cancel=False):
5487
5496
  args = events[0].values
5488
- return BscWait4(events, args[0], args[1], args[2], args[3], serialize_result(events[-1], 'pid'), no_cancel)
5497
+ return BscWait4(events, pid(args[0]), args[1], args[2], args[3], serialize_result(events[-1], 'pid'), no_cancel)
5489
5498
 
5490
5499
 
5491
5500
  def handle_recvmsg(parser, events, no_cancel=False):
@@ -5548,7 +5557,7 @@ def handle_sigreturn(parser, events):
5548
5557
 
5549
5558
 
5550
5559
  def handle_kill(parser, events):
5551
- return BscKill(events, events[0].values[0], events[0].values[1], serialize_result(events[-1]))
5560
+ return BscKill(events, pid(events[0].values[0]), events[0].values[1], serialize_result(events[-1]))
5552
5561
 
5553
5562
 
5554
5563
  def handle_getppid(parser, events):
@@ -5688,7 +5697,7 @@ def handle_getpgrp(parser, events):
5688
5697
 
5689
5698
 
5690
5699
  def handle_setpgid(parser, events):
5691
- return BscSetpgid(events, events[0].values[0], events[0].values[1], serialize_result(events[-1]))
5700
+ return BscSetpgid(events, pid(events[0].values[0]), pid(events[0].values[1]), serialize_result(events[-1]))
5692
5701
 
5693
5702
 
5694
5703
  def handle_setitimer(parser, events):
@@ -5885,7 +5894,7 @@ def handle_gethostuuid(parser, events):
5885
5894
 
5886
5895
 
5887
5896
  def handle_obs_killpg(parser, events):
5888
- return BscObsKillpg(events, events[0].values[0], events[0].values[1], serialize_result(events[-1]))
5897
+ return BscObsKillpg(events, pid(events[0].values[0]), events[0].values[1], serialize_result(events[-1]))
5889
5898
 
5890
5899
 
5891
5900
  def handle_setsid(parser, events):
@@ -5893,7 +5902,7 @@ def handle_setsid(parser, events):
5893
5902
 
5894
5903
 
5895
5904
  def handle_getpgid(parser, events):
5896
- return BscGetpgid(events, events[0].values[0], serialize_result(events[-1], 'gid'))
5905
+ return BscGetpgid(events, pid(events[0].values[0]), serialize_result(events[-1], 'gid'))
5897
5906
 
5898
5907
 
5899
5908
  def handle_setprivexec(parser, events):
@@ -5952,12 +5961,12 @@ def handle_mount(parser, events):
5952
5961
 
5953
5962
  def handle_csops(parser, events):
5954
5963
  args = events[0].values
5955
- return BscCsops(events, args[0], parse_enum(CsopsOps, args[1]), args[2], args[3], serialize_result(events[-1]))
5964
+ return BscCsops(events, pid(args[0]), parse_enum(CsopsOps, args[1]), args[2], args[3], serialize_result(events[-1]))
5956
5965
 
5957
5966
 
5958
5967
  def handle_csops_audittoken(parser, events):
5959
5968
  args = events[0].values
5960
- return BscCsopsAudittoken(events, args[0], parse_enum(CsopsOps, args[1]), args[2], args[3], serialize_result(events[-1]))
5969
+ return BscCsopsAudittoken(events, pid(args[0]), parse_enum(CsopsOps, args[1]), args[2], args[3], serialize_result(events[-1]))
5961
5970
 
5962
5971
 
5963
5972
  def handle_waitid(parser, events, no_cancel=False):
@@ -6353,7 +6362,7 @@ def handle_psynch_cvwait(parser, events):
6353
6362
 
6354
6363
  def handle_getsid(parser, events):
6355
6364
  args = events[0].values
6356
- return BscGetsid(events, args[0], serialize_result(events[-1], 'sid'))
6365
+ return BscGetsid(events, pid(args[0]), serialize_result(events[-1], 'sid'))
6357
6366
 
6358
6367
 
6359
6368
  def handle_psynch_cvclrprepost(parser, events):
@@ -6399,7 +6408,7 @@ def handle_semwait_signal(parser, events, no_cancel=False):
6399
6408
 
6400
6409
  def handle_proc_info(parser, events):
6401
6410
  args = events[0].values
6402
- return BscProcInfo(events, parse_enum(ProcInfoCall, args[0]), args[1], args[2], args[3], serialize_result(events[-1]))
6411
+ return BscProcInfo(events, parse_enum(ProcInfoCall, args[0]), pid(args[1]), args[2], args[3], serialize_result(events[-1]))
6403
6412
 
6404
6413
 
6405
6414
  def handle_sendfile(parser, events):
@@ -6548,22 +6557,22 @@ def handle_audit_session_port(parser, events):
6548
6557
 
6549
6558
  def handle_pid_suspend(parser, events):
6550
6559
  args = events[0].values
6551
- return BscPidSuspend(events, args[0], serialize_result(events[-1]))
6560
+ return BscPidSuspend(events, pid(args[0]), serialize_result(events[-1]))
6552
6561
 
6553
6562
 
6554
6563
  def handle_pid_resume(parser, events):
6555
6564
  args = events[0].values
6556
- return BscPidResume(events, args[0], serialize_result(events[-1]))
6565
+ return BscPidResume(events, pid(args[0]), serialize_result(events[-1]))
6557
6566
 
6558
6567
 
6559
6568
  def handle_pid_hibernate(parser, events):
6560
6569
  args = events[0].values
6561
- return BscPidHibernate(events, args[0], serialize_result(events[-1]))
6570
+ return BscPidHibernate(events, pid(args[0]), serialize_result(events[-1]))
6562
6571
 
6563
6572
 
6564
6573
  def handle_pid_shutdown_sockets(parser, events):
6565
6574
  args = events[0].values
6566
- return BscPidShutdownSockets(events, args[0], args[1], serialize_result(events[-1]))
6575
+ return BscPidShutdownSockets(events, pid(args[0]), args[1], serialize_result(events[-1]))
6567
6576
 
6568
6577
 
6569
6578
  def handle_shared_region_map_and_slide_np(parser, events):
@@ -6578,7 +6587,7 @@ def handle_kas_info(parser, events):
6578
6587
 
6579
6588
  def handle_memorystatus_control(parser, events):
6580
6589
  args = events[0].values
6581
- return BscMemorystatusControl(events, args[0], args[1], args[2], args[3], serialize_result(events[-1]))
6590
+ return BscMemorystatusControl(events, args[0], pid(args[1]), args[2], args[3], serialize_result(events[-1]))
6582
6591
 
6583
6592
 
6584
6593
  def handle_guarded_open_np(parser, events):
@@ -6609,7 +6618,7 @@ def handle_usrctl(parser, events):
6609
6618
 
6610
6619
  def handle_proc_rlimit_control(parser, events):
6611
6620
  args = events[0].values
6612
- return BscProcRlimitControl(events, args[0], args[1], args[2], serialize_result(events[-1]))
6621
+ return BscProcRlimitControl(events, pid(args[0]), args[1], args[2], serialize_result(events[-1]))
6613
6622
 
6614
6623
 
6615
6624
  def handle_connectx(parser, events):
@@ -6663,7 +6672,7 @@ def handle_sfi_ctl(parser, events):
6663
6672
 
6664
6673
  def handle_sfi_pidctl(parser, events):
6665
6674
  args = events[0].values
6666
- return BscSfiPidctl(events, args[0], args[1], args[2], args[3], serialize_result(events[-1]))
6675
+ return BscSfiPidctl(events, args[0], pid(args[1]), args[2], args[3], serialize_result(events[-1]))
6667
6676
 
6668
6677
 
6669
6678
  def handle_coalition(parser, events):
@@ -6778,7 +6787,7 @@ def handle_getattrlistat(parser, events):
6778
6787
 
6779
6788
  def handle_proc_trace_log(parser, events):
6780
6789
  args = events[0].values
6781
- return BscProcTraceLog(events, args[0], args[1], serialize_result(events[-1]))
6790
+ return BscProcTraceLog(events, pid(args[0]), args[1], serialize_result(events[-1]))
6782
6791
 
6783
6792
 
6784
6793
  def handle_bsdthread_ctl(parser, events):
@@ -6979,7 +6988,7 @@ def handle_fs_snapshot(parser, events):
6979
6988
 
6980
6989
  def handle_terminate_with_payload(parser, events):
6981
6990
  args = events[0].values
6982
- return BscTerminateWithPayload(events, args[0], args[1], args[2], args[3], serialize_result(events[-1]))
6991
+ return BscTerminateWithPayload(events, pid(args[0]), args[1], args[2], args[3], serialize_result(events[-1]))
6983
6992
 
6984
6993
 
6985
6994
  def handle_abort_with_payload(parser, events):
@@ -7065,12 +7074,12 @@ def handle_pivot_root(parser, events):
7065
7074
 
7066
7075
  def handle_task_inspect_for_pid(parser, events):
7067
7076
  args = events[0].values
7068
- return BscTaskInspectForPid(events, args[0], args[1], args[2], serialize_result(events[-1]))
7077
+ return BscTaskInspectForPid(events, args[0], pid(args[1]), args[2], serialize_result(events[-1]))
7069
7078
 
7070
7079
 
7071
7080
  def handle_task_read_for_pid(parser, events):
7072
7081
  args = events[0].values
7073
- return BscTaskReadForPid(events, args[0], args[1], args[2], serialize_result(events[-1]))
7082
+ return BscTaskReadForPid(events, args[0], pid(args[1]), args[2], serialize_result(events[-1]))
7074
7083
 
7075
7084
 
7076
7085
  def handle_sys_preadv(parser, events, no_cancel=False):
@@ -7092,7 +7101,7 @@ def handle_ulock_wait2(parser, events):
7092
7101
 
7093
7102
  def handle_proc_info_extended_id(parser, events):
7094
7103
  args = events[0].values
7095
- return BscProcInfoExtendedId(events, args[0], args[1], args[2], args[3], serialize_result(events[-1]))
7104
+ return BscProcInfoExtendedId(events, args[0], pid(args[1]), args[2], args[3], serialize_result(events[-1]))
7096
7105
 
7097
7106
 
7098
7107
  def handle_openat_dprotected_np(parser, events):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pykdebugparser
3
- Version: 1.6.0
3
+ Version: 1.6.1
4
4
  Summary: Python parser for kdebug events
5
5
  Author: Matan Perelman
6
6
  Author-email: matan1008@gmail.com
@@ -10,16 +10,16 @@ pykdebugparser/trace.codes,sha256=S6ZN5l9FSGrlSon8nKoVaqRfLdCPl3HL93XSjuoCUnM,10
10
10
  pykdebugparser/trace_codes.py,sha256=4ImGc_jNpY-12cGXdwy6NMCEYcI24oYn1NBOaKNdWNo,1984
11
11
  pykdebugparser/traces_parser.py,sha256=LyHVTi4P2OeOLNG2Tahu1x7roQXkC-Jx8LS-E4mBcAQ,5799
12
12
  pykdebugparser/trace_handlers/__init__.py,sha256=r1dzmNTxiEtgENq9WFRVQX0g9f9dRxgAgVxjDXSc7s4,679
13
- pykdebugparser/trace_handlers/bsd.py,sha256=XJjKxDzHSD2VkwEPOqizdTA6ZydFXq7piEVJKCAa0ZY,189267
13
+ pykdebugparser/trace_handlers/bsd.py,sha256=zk0FrMK1wlt-RKe8JBXNe1AvCryRRKgxDZQKVKToYF4,189747
14
14
  pykdebugparser/trace_handlers/dyld.py,sha256=LDgWzOl90qXzcc_q8OvttV2gJ4JNodXFwMemSiV8_ps,10154
15
15
  pykdebugparser/trace_handlers/fsystem.py,sha256=AE9L_00-11VyZAYd6dzkmTCP6EVFmXzyae2VikrsiJo,2082
16
16
  pykdebugparser/trace_handlers/mach.py,sha256=_2YEgUfKYxaB7NfA2jCVxUbdKDrU21KJKhxtc5yP1M8,39172
17
17
  pykdebugparser/trace_handlers/perf.py,sha256=CBffheZFlHa9IOVUZ-UcjNtKmjamv-un44bRJYYo9dw,5070
18
18
  pykdebugparser/trace_handlers/trace.py,sha256=s3Kr0wDvWZL2JZVKhxcvA1uvqsdePlEWiXfqSI76znw,5797
19
19
  pykdebugparser/trace_handlers/turnstile.py,sha256=8zZfba2Obq7a6qdhLIkItmZxRzzOe1PTTeHnrLuJUx0,8233
20
- pykdebugparser-1.6.0.dist-info/licenses/LICENSE,sha256=KjZXYP_CGYzDTtVfcxPT6wlGRoQKHPSJu0vh55_2QSo,1071
21
- pykdebugparser-1.6.0.dist-info/METADATA,sha256=U2COUKhE9WYKZlpGQulRUvrspyB7k0qMgKMmKg5S3l0,18971
22
- pykdebugparser-1.6.0.dist-info/WHEEL,sha256=4YBfCYNH4wlLpv3pzq1hbEuIlXA4WJabKLFurZ7eTL0,109
23
- pykdebugparser-1.6.0.dist-info/entry_points.txt,sha256=NrVIOgPR6v2MbpTZ3aKedP1jQ93nUQus6sgP4wAD0_E,63
24
- pykdebugparser-1.6.0.dist-info/top_level.txt,sha256=FcHHXR9VKmqufFw0a6UP4c8NyS-u4ORY-yXQ6ZzP_28,15
25
- pykdebugparser-1.6.0.dist-info/RECORD,,
20
+ pykdebugparser-1.6.1.dist-info/licenses/LICENSE,sha256=KjZXYP_CGYzDTtVfcxPT6wlGRoQKHPSJu0vh55_2QSo,1071
21
+ pykdebugparser-1.6.1.dist-info/METADATA,sha256=n7hDM3O4h_xlitu_hp8qjHKJ984Hpf1pTHTaRaxnuOo,18971
22
+ pykdebugparser-1.6.1.dist-info/WHEEL,sha256=4YBfCYNH4wlLpv3pzq1hbEuIlXA4WJabKLFurZ7eTL0,109
23
+ pykdebugparser-1.6.1.dist-info/entry_points.txt,sha256=NrVIOgPR6v2MbpTZ3aKedP1jQ93nUQus6sgP4wAD0_E,63
24
+ pykdebugparser-1.6.1.dist-info/top_level.txt,sha256=FcHHXR9VKmqufFw0a6UP4c8NyS-u4ORY-yXQ6ZzP_28,15
25
+ pykdebugparser-1.6.1.dist-info/RECORD,,