in scripts/stetho_open.py [0:0]
def _find_only_stetho_socket(device, port):
adb = _connect_to_device(device, port)
try:
adb.select_service('shell:cat /proc/net/unix')
last_stetho_socket_name = None
process_names = []
for line in adb.sock.makefile():
row = re.split(r'\s+', line.rstrip())
if len(row) < 8:
continue
socket_name = row[7]
if not socket_name.startswith('@stetho_'):
continue
# Filter out entries that are not server sockets
if int(row[3], 16) != 0x10000 or int(row[5]) != 1:
continue
last_stetho_socket_name = socket_name[1:]
process_names.append(
_parse_process_from_stetho_socket(socket_name))
if len(process_names) > 1:
raise HumanReadableError(
'Multiple stetho-enabled processes available:%s\n' % (
'\n\t'.join([''] + list(set(process_names)))) +
'Use -p <process> or the environment variable STETHO_PROCESS to ' +
'select one')
elif last_stetho_socket_name == None:
raise HumanReadableError('No stetho-enabled processes running')
else:
return last_stetho_socket_name
finally:
adb.sock.close()