mirror of
https://github.com/imcarlost/pidcat-repl.git
synced 2026-08-08 23:17:43 -04:00
Merge pull request #73 from ahupp/master
Handle alternative start proc log line
This commit is contained in:
@@ -139,7 +139,8 @@ TAGTYPES = {
|
||||
'F': colorize(' F ', fg=BLACK, bg=RED),
|
||||
}
|
||||
|
||||
PID_START = re.compile(r'^Start proc ([a-zA-Z0-9._:]+) for ([a-z]+ [^:]+): pid=(\d+) uid=(\d+) gids=(.*)$')
|
||||
PID_START = re.compile(r'^.*: Start proc ([a-zA-Z0-9._:]+) for ([a-z]+ [^:]+): pid=(\d+) uid=(\d+) gids=(.*)$')
|
||||
PID_START_DALVIK = re.compile(r'^E/dalvikvm\((\d+)\): >>>>> ([a-zA-Z0-9._:]+) \[ userId:0 \| appId:(\d+) \]$')
|
||||
PID_KILL = re.compile(r'^Killing (\d+):([a-zA-Z0-9._:]+)/[^:]+: (.*)$')
|
||||
PID_LEAVE = re.compile(r'^No longer want ([a-zA-Z0-9._:]+) \(pid (\d+)\): .*$')
|
||||
PID_DEATH = re.compile(r'^Process ([a-zA-Z0-9._:]+) \(pid (\d+)\) has died.?$')
|
||||
@@ -177,7 +178,6 @@ if sys.stdin.isatty():
|
||||
else:
|
||||
adb = FakeStdinProcess()
|
||||
pids = set()
|
||||
seen_pids = False
|
||||
last_tag = None
|
||||
app_pid = None
|
||||
|
||||
@@ -212,6 +212,17 @@ def parse_death(tag, message):
|
||||
return pid, package_line
|
||||
return None, None
|
||||
|
||||
def parse_start_proc(line):
|
||||
start = PID_START.match(line)
|
||||
if start is not None:
|
||||
line_package, target, line_pid, line_uid, line_gids = start.groups()
|
||||
return line_package, target, line_pid, line_uid, line_gids
|
||||
start = PID_START_DALVIK.match(line)
|
||||
if start is not None:
|
||||
line_pid, line_package, line_uid = start.groups()
|
||||
return line_package, '', line_pid, line_uid, ''
|
||||
return None
|
||||
|
||||
while adb.poll() is None:
|
||||
try:
|
||||
line = adb.stdout.readline().decode('utf-8', 'replace').strip()
|
||||
@@ -229,14 +240,11 @@ while adb.poll() is None:
|
||||
continue
|
||||
|
||||
level, tag, owner, message = log_line.groups()
|
||||
|
||||
start = PID_START.match(message)
|
||||
if start is not None:
|
||||
line_package, target, line_pid, line_uid, line_gids = start.groups()
|
||||
|
||||
start = parse_start_proc(line)
|
||||
if start:
|
||||
line_package, target, line_pid, line_uid, line_gids = start
|
||||
if match_packages(line_package):
|
||||
pids.add(line_pid)
|
||||
seen_pids = True
|
||||
|
||||
app_pid = line_pid
|
||||
|
||||
@@ -266,7 +274,7 @@ while adb.poll() is None:
|
||||
message = message.lstrip()
|
||||
owner = app_pid
|
||||
|
||||
if seen_pids and owner not in pids:
|
||||
if owner not in pids:
|
||||
continue
|
||||
if level in LOG_LEVELS_MAP and LOG_LEVELS_MAP[level] < min_level:
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user