mirror of https://github.com/pwndbg/pwndbg
35 lines
938 B
Python
Executable File
35 lines
938 B
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import pstats
|
|
from argparse import ArgumentParser
|
|
|
|
|
|
def parse_args():
|
|
parser = ArgumentParser(description="Print the profiling stats from a pstats file")
|
|
parser.add_argument("-n", "--num", type=int, help="number of stats to print")
|
|
parser.add_argument("-f", "--filter", help="regex to match against each entry")
|
|
parser.add_argument(
|
|
"--no-strip", action="store_true", help="print the entire file path for each entry"
|
|
)
|
|
parser.add_argument("file", help="pstats file to parse")
|
|
parser.add_argument(
|
|
"-s",
|
|
"--sort",
|
|
choices=["calls", "ncalls", "cumulative", "time"],
|
|
default="cumulative",
|
|
)
|
|
|
|
return parser.parse_args()
|
|
|
|
|
|
def main():
|
|
args = parse_args()
|
|
s = pstats.Stats(args.file)
|
|
if not args.no_strip:
|
|
s.strip_dirs()
|
|
s.sort_stats(args.sort).print_stats(args.filter, args.num)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|