Permalink
Commits on Oct 6, 2018
  1. Remove redundant docker info in readme

    benfred committed Oct 6, 2018
Commits on Oct 4, 2018
  1. use PYSPY_CROSS_COMPILE_TARGET for linux wheels

    benfred committed Oct 4, 2018
    Use generic enviroment variable for specifying linux musl toolchain,
    rather than maintain special case enviroment variables for 32/64 bit
  2. Merge pull request #52 from sbtinstruments/master

    benfred committed Oct 4, 2018
    Add PYSPY_CROSS_COMPILE_TARGET parameter to setup.py.
  3. Merge pull request #39 from marcstreeter/master

    benfred committed Oct 4, 2018
    updating readme for Alpine Linux
  4. Add PYSPY_CROSS_COMPILE_TARGET parameter to setup.py.

    Frederik Peter Aalund
    Frederik Peter Aalund committed Oct 4, 2018
Commits on Sep 24, 2018
  1. Allow Control-C to stop sampling flame graphs.

    benfred committed Sep 24, 2018
    This change lets you press control-c while generating a flame graph, and
    still get the flamegraph with samples taken until then.
    
    #21
Commits on Sep 22, 2018
  1. Bump version: 0.1.7 → 0.1.8

    benfred committed Sep 22, 2018
  2. fallback when failing to find exe in memory maps

    benfred committed Sep 22, 2018
    If we failed to find the executable in the virtual memory maps, just take the
    first file we find. Sometimes on windows get_process_exe returns stale info =(
    #40
    and on all operating systems I've tried, the exe is the first region in the maps
  3. fix for python bundled with pyinstaller

    benfred committed Sep 22, 2018
    Pyinstaller was creating bundles that we couldn't profile from, mainly because
    libpython wasn't found in an expected location. Fix by not requiring libpython
    to be in a lib/lib64 directory, and instead match filenames using a regex
    like on windows.
Commits on Sep 20, 2018
  1. added docker compose readme details

    marcstreeter committed Sep 20, 2018
    docker-compose read me portion added
Commits on Sep 19, 2018
  1. Bump version: 0.1.6 → 0.1.7

    benfred committed Sep 19, 2018
Commits on Sep 18, 2018
  1. Merge pull request #1 from marcstreeter/marcstreeter-alpine-linux-readme

    marcstreeter committed Sep 18, 2018
    Added alpine linux documentation
  2. Added alpine linux documentation

    marcstreeter committed Sep 18, 2018
    unable to install on alpine linux without additional steps (even after 0.1.5)
  3. Add section about concurrent memory reads to FAQ

    benfred committed Sep 18, 2018
    Multiple people were asking about how we handle reading memory concurrently:
    #26 / #32
    
    Add a brief answer to the readme to fix.
Commits on Sep 17, 2018
  1. check interpreter addresses from symbols too

    benfred committed Sep 17, 2018
    When scanning the BSS table, we check that the interpreter addresses are valid too.
    However, we just assumed that the interpreter addresses from the symbol lookup
    were valid and returned them immediately if found.
    
    When testing windows 7 with python 3.7, this seemed to cause an issue. Fix by also
    validating that we can get a valid interpeter state from the address found in the
    symbols, and if not fall back to scanning the BSS section.
  2. extra logging for symbol lookups

    benfred committed Sep 17, 2018
  3. Windows 7 console improvements.

    benfred committed Sep 17, 2018
    Before windows 10, ansi codes weren't supported in cmd.exe. This caused
    garbage output displaying at the end of each line where we attempted to
    clear the rest of the line using ansi codes.
    
    Handle this by using the
    [console::Term::clear_line)(https://docs.rs/console/0.6.2/console/struct.Term.html#method.clear_line)
    function instead.
Commits on Sep 15, 2018
  1. Bump version: 0.1.5 → 0.1.6

    benfred committed Sep 15, 2018
  2. Warn if we aren't sampling fast enough

    benfred committed Sep 15, 2018
    At high rates, it's quite possible that we won't be able to sample the
    python process fast enough. This could lead to inaccurate results,
    and also might lead to issues like #33
    . Fix by warning if we aren't keeping up in sampling.
    
    Also tweak the default sampling rate to be lower (200). While I can sample
    at around 10K samples a second on any machine I've tested this should help
    here too.
  3. build generic py2.py3 wheels on windows.

    benfred committed Sep 15, 2018
    Building a python2 wheel seems to fail on windows: https://ci.appveyor.com/project/benfred/py-spy
    Instead of building a platform specific version, build a wheel that should
    work on both python2/3 on windows.
  4. Don't build 32bit python wheels for windows

    benfred committed Sep 15, 2018
    We were distributing 32-bit python wheels on windows, but these didn't work.
    Disable these wheels (and also attempt to build 64 bit python2.7 wheels
    #11).
  5. panic on profiling 32-bit python on windows.

    benfred committed Sep 15, 2018
    We were seeing a bunch of reports of people failing to run this against
    32-bit python installs on windows. Detect this and panic with a
    better error message while this gets sorted out.
  6. Use case insensitive compare for windows exe

    benfred committed Sep 15, 2018
    On windows, matching the process exe against the virtual memory maps
    could fail because of trivial differences (c:\\python.exe vs C:\\python.exe).
    Fix by doing a case insensitive compare of windows.
Commits on Sep 14, 2018
  1. Support embedded python interpreters

    benfred committed Sep 14, 2018
    Rather than run some heuristics to find the executable name, this change
    queries the OS directly for the executable name. This lets us support
    python executables that aren't named python, and also lets us support
    profiling embedded python interpreters like uswgi.
    
    Also return better error messages if we can't find the pid or create the process.
    
    This should fix:
    
    #25
    #34
    #36
Commits on Sep 13, 2018
  1. Merge pull request #17 from achanda/patch-1

    benfred committed Sep 13, 2018
    Add instructions on running on Kubernetes
  2. Merge pull request #19 from ThomasWaldmann/typos

    benfred committed Sep 13, 2018
    fix typos, grammar, phrasing
Commits on Sep 11, 2018
  1. mark some common 'poll()' calls as being idle

    benfred committed Sep 11, 2018
    This removes some common poll calls from polluting the results. Code from
    zmq/gevent/tornado/asyncore should be removed now.
    
    #13
Commits on Sep 10, 2018
  1. Bump version: 0.1.4 → 0.1.5

    benfred committed Sep 10, 2018
  2. use musl libc for linux wheels

    benfred committed Sep 10, 2018
    Using glibc was causing some issues with people who had earlier versions
    installed on their OS's. #5 .
    
    jgraham suggested using the musl toolchain, which lets us statically link
    libc. With this change we don't have any dynamicly linked depedencies,
    which should make distribution smoother. As an added bonus this also
    means the wheels we are shipping pass audithweel =).
Commits on Sep 9, 2018
  1. Fix for OSX python built with '--enable-framework'

    benfred committed Sep 9, 2018
    We weren't matching the python framework appropiately for python built with
    pyenv when configured with '--enable-framework' (#15)
    Fix and add a unittest.
  2. Fix short commandline arguments

    benfred committed Sep 9, 2018
    We were mapping '-d' twice (duration/dump args) in the commandline arguments,
    causing issues. Fix.
Commits on Sep 8, 2018
  1. Fix for Centos7

    benfred committed Sep 8, 2018
    On Centos, libpython is located at /usr/lib64/libpython2.7.so.1.0 . We
    weren't matching the filename since we were expecting lib/libpython.
    Fix to also include lib64.
Commits on Sep 7, 2018
  1. fix typos, grammar, phrasing

    ThomasWaldmann committed Sep 7, 2018
  2. Add instructions on running on Kubernetes

    achanda committed Sep 7, 2018