summaryrefslogtreecommitdiff
path: root/simpleperf/scripts/gecko_profile_generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'simpleperf/scripts/gecko_profile_generator.py')
-rwxr-xr-xsimpleperf/scripts/gecko_profile_generator.py27
1 files changed, 5 insertions, 22 deletions
diff --git a/simpleperf/scripts/gecko_profile_generator.py b/simpleperf/scripts/gecko_profile_generator.py
index e7108ee6..396c9a58 100755
--- a/simpleperf/scripts/gecko_profile_generator.py
+++ b/simpleperf/scripts/gecko_profile_generator.py
@@ -30,7 +30,7 @@ import sys
from dataclasses import dataclass, field
from simpleperf_report_lib import ReportLib
-from simpleperf_utils import BaseArgumentParser, flatten_arg_list
+from simpleperf_utils import BaseArgumentParser, flatten_arg_list, ReportLibOptions
from typing import List, Dict, Optional, NamedTuple, Set, Tuple
@@ -295,22 +295,17 @@ def _gecko_profile(
record_file: str,
symfs_dir: Optional[str],
kallsyms_file: Optional[str],
- proguard_mapping_file: List[str],
- comm_filter: Set[str],
- sample_filter: Optional[str]) -> GeckoProfile:
+ report_lib_options: ReportLibOptions) -> GeckoProfile:
"""convert a simpleperf profile to gecko format"""
lib = ReportLib()
lib.ShowIpForUnknownSymbol()
- for file_path in proguard_mapping_file:
- lib.AddProguardMappingFile(file_path)
if symfs_dir is not None:
lib.SetSymfs(symfs_dir)
lib.SetRecordFile(record_file)
if kallsyms_file is not None:
lib.SetKallsymsFile(kallsyms_file)
- if sample_filter:
- lib.SetSampleFilter(sample_filter)
+ lib.SetReportOptions(report_lib_options)
arch = lib.GetArch()
meta_info = lib.MetaInfo()
@@ -324,9 +319,6 @@ def _gecko_profile(
if sample is None:
lib.Close()
break
- if comm_filter:
- if sample.thread_comm not in comm_filter:
- continue
event = lib.GetEventOfCurrentSample()
symbol = lib.GetSymbolOfCurrentSample()
callchain = lib.GetCallChainOfCurrentSample()
@@ -405,22 +397,13 @@ def main() -> None:
parser.add_argument('--kallsyms', help='Set the path to find kernel symbols.')
parser.add_argument('-i', '--record_file', nargs='?', default='perf.data',
help='Default is perf.data.')
- parser.add_argument(
- '--proguard-mapping-file', nargs='+',
- help='Add proguard mapping file to de-obfuscate symbols',
- default=[])
- sample_filter_group = parser.add_argument_group('Sample filter options')
- parser.add_sample_filter_options(sample_filter_group)
- sample_filter_group.add_argument('--comm', nargs='+', action='append', help="""
- Use samples only in threads with selected names.""")
+ parser.add_report_lib_options()
args = parser.parse_args()
profile = _gecko_profile(
record_file=args.record_file,
symfs_dir=args.symfs,
kallsyms_file=args.kallsyms,
- proguard_mapping_file=args.proguard_mapping_file,
- comm_filter=set(flatten_arg_list(args.comm)),
- sample_filter=args.sample_filter)
+ report_lib_options=args.report_lib_options)
json.dump(profile, sys.stdout, sort_keys=True)