benfred / py-spy

Sampling profiler for Python programs
MIT License
12.13k stars 401 forks source link

Add `--class-name` param to prepend class names to methods #654

Open karolinepauls opened 4 months ago

karolinepauls commented 4 months ago

Regular methods and classmethods supported. No support for static methods. This is because the frame object doesn't refer to the function, only its code, which leaves no other option than to try to find self or cls in locals. The alternative of using the gc module is horrendously slow even in the same process and also impractical in a remote process.

I was experiencing unaligned memory reads in coredump::test::test_coredump locally, unrelated to my changes. I fixed it in a separate PR.

image

it works in the record mode: image