if sys.platform == "darwin":
dtrace_args.append('-xmangled')
- f = open("%d.dtrace" % os.getpid(), "w")
start_time = time.time()
- subprocess.check_call(dtrace_args, stdout=f, stderr=subprocess.PIPE)
+
+ with open("%d.dtrace" % os.getpid(), "w") as f:
+ subprocess.check_call(dtrace_args, stdout=f, stderr=subprocess.PIPE)
+
elapsed = time.time() - start_time
print("... data collection took %.4fs" % elapsed)
# Find the cc1 command used by the compiler. To do this we execute the
# compiler with '-###' to figure out what it wants to do.
cmd = cmd + ['-###']
- cc_output = check_output(cmd, stderr=subprocess.STDOUT, env=env).strip()
+ cc_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, env=env).strip()
cc_commands = []
for ln in cc_output.split('\n'):
# Filter out known garbage.
for s in possible_symbols:
yield (current_timestamp, s)
-def check_output(*popen_args, **popen_kwargs):
- p = subprocess.Popen(stdout=subprocess.PIPE, *popen_args, **popen_kwargs)
- stdout,stderr = p.communicate()
- if p.wait() != 0:
- raise RuntimeError("process failed")
- return stdout
-
def uniq(list):
seen = set()
for item in list:
# If the user gave us a binary, get all the symbols in the binary by
# snarfing 'nm' output.
if opts.binary_path is not None:
- output = check_output(['nm', '-P', opts.binary_path])
+ output = subprocess.check_output(['nm', '-P', opts.binary_path])
lines = output.split("\n")
all_symbols = [ln.split(' ',1)[0]
for ln in lines