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