forked from luck/tmp_suning_uos_patched
perf flamegraph: Explicitly set utf-8 encoding
On some platforms the default encoding is not utf-8, which causes an UnicodeDecodeError when reading the flamegraph template and writing the flamegraph Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Michael Petlan <mpetlan@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lore.kernel.org/lkml/20200619153232.203537-1-agerstmayr@redhat.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
625d344978
commit
c42ad5d435
|
@ -17,6 +17,7 @@
|
|||
from __future__ import print_function
|
||||
import sys
|
||||
import os
|
||||
import io
|
||||
import argparse
|
||||
import json
|
||||
|
||||
|
@ -81,7 +82,7 @@ class FlameGraphCLI:
|
|||
|
||||
if self.args.format == "html":
|
||||
try:
|
||||
with open(self.args.template) as f:
|
||||
with io.open(self.args.template, encoding="utf-8") as f:
|
||||
output_str = f.read().replace("/** @flamegraph_json **/",
|
||||
json_str)
|
||||
except IOError as e:
|
||||
|
@ -93,11 +94,12 @@ class FlameGraphCLI:
|
|||
output_fn = self.args.output or "stacks.json"
|
||||
|
||||
if output_fn == "-":
|
||||
sys.stdout.write(output_str)
|
||||
with io.open(sys.stdout.fileno(), "w", encoding="utf-8", closefd=False) as out:
|
||||
out.write(output_str)
|
||||
else:
|
||||
print("dumping data to {}".format(output_fn))
|
||||
try:
|
||||
with open(output_fn, "w") as out:
|
||||
with io.open(output_fn, "w", encoding="utf-8") as out:
|
||||
out.write(output_str)
|
||||
except IOError as e:
|
||||
print("Error writing output file: {}".format(e), file=sys.stderr)
|
||||
|
|
Loading…
Reference in New Issue
Block a user