Release notes are now being hosted in Github Releases: https://github.com/benfred/py-spy/releases
- Update dependencies #463, #457
- Warn about SYS_PTRACE when running in docker #459
- Fix spelling mistakes #453
- Add support for profiling Python v3.10 #425
- Fix issue with native profiling on Linux with Anaconda #447
- Add a subcommand to generate shell completions #427
- Allow attaching co_firstlineno to frame name #428
- Fix speedscope time interval #434
- Fix profiling on FreeBSD #431
- Use GitHub actions for FreeBSD CI #433
- Add wheels for Apple Silicon #419
- Add --gil and --idle options to top view #406
- Fix errors parsing python binaries #407
- Specify timeunit in speedscope profiles #294
- Fix error that sometimes left the profiled program suspended #390
- Documentation fixes for README #391, #393
- Fix profiling inside a venv on windows #216
- Detect GIL on Python 3.9.3+, 3.8.9+ #375
- Fix getting thread names on python 3.9 #387
- Fix getting thread names on ARMv7 #388
- Add python integration tests, and test wheels across a range of different python versions #378
- Automatically add tests for new versions of python #379
- Handle case where linux kernel is compiled without
process_vm_readv
support #22 - Handle case where /proc/self/ns/mnt is missing #326
- Allow attaching to processes where the python binary has been deleted #109
- Make '--output' optional #229
- Add --full-filenames to allow showing full Python filenames #363
- Count "samples" as the number of recorded stacks (per thread) #365
- Exit with an error if --gil but we failed to get necessary addrs/offsets #361
- Include command/options used to run py-spy in flamegraph output #293
- GIL Detection fixes for python 3.9.2/3.8.8 #362
- Move to Github Actions for CI
- Build armv7/aarch64 wheels #328
- Detect GIL on Python 3.9 / 3.7.7+ / 3.8.2+
- Add option for more verbose local variables #287
- Fix issues with profiling subprocesses #265
- Include python thread names in record #237
- Fix issue with threadids triggering differential flamegraphs #234
- Change to display stdout/stderr from profiled child process #217
- Fix memory leak on OSX #227
- Fix panic on dump --locals #224
- Fix cross container short filename generation #220
- Fix line numbers on python 3.8+ #190
- Fix profiling pyinstaller binaries on OSX #207
- Support getting GIL from Python 3.8.1/3.7.6/3.7.5 #211
- Fix ptrace errors on linux kernel older than v4.7 #83
- Fix for profiling docker containers from host os #199
- Fix for speedscope profiles aggregated by function name #201
- Use symbols from dynsym table of ELF binaries #191
- Add ability to profile subprocesses #124
- Fix overflow issue with linux symbolication #183
- Fixes for printing local variables #180
- Add ability to show local variables when dumping out stack traces #77
- Show python thread names in dump #47
- Fix issues with profiling python hosted by .NET exe #171
- Fix issue with profiling dockerized process from the host os #168
- Add ability to profile native python extensions #2
- Add FreeBSD support #112
- Relicense to MIT #163
- Add option to write out Speedscope files #115
- Add option to output raw call stack data #35
- Get thread idle status from OS #92
- Add 'unlimited' default option for the duration #93
- Allow use as a library by other rust programs #110
- Show OS threadids in dump #57
- Drop root permissions when starting new process #116
- Support building for ARM processors #89
- Python 3.8 compatibility
- Fix issues profiling functions with more than 4000 lines #164
- Fix to detect GIL status on Python 3.7+ #104
- Generate flamegraphs without perl (using Inferno) #38
- Use irregular sampling interval to avoid incorrect results #94
- Detect python packages when generating short filenames #75
- Fix issue with finding interpreter with Python 3.7 and 32bit Linux #101
- Detect "v2.7.15+" as a valid version string #81
- Fix to cleanup venv after failing to build with setup.py #69
- Fix running py-spy inside a docker container #68
- Fix partial stack traces from showing up, by pausing process while collecting samples #56. Also add a
--nonblocking
option to use previous behaviour of not stopping process. - Allow sampling process running in a docker container from the host OS #49
- Allow collecting data for flame graph until interrupted with Control-C #21
- Support 'legacy' strings in python 3 #64
- Console viewer improvements for Windows 7 #37
- Warn if we can't sample fast enough #33
- Support embedded python interpreters like UWSGI #25
- Better error message when failing with 32-bit python on windows
- Use musl libc for linux wheels #5
- Fix for OSX python built with '--enable-framework' #15
- Fix for running on Centos7
- Initial public release