Le mer. 10 avr. 2019 à 21:45, Brett Cannon <br...@python.org> a écrit : >> Can anyone explain what pydebug builds are... for? Confession: I've never >> used them myself, and don't know why I would want to. > > There is a bunch of extra things done in a debug build, e.g. all freed memory > is blanked out with a known pattern so it's easy to tell when you're reading > from freed memory (and thus probably messed up your refcounts).
Since the debug build ABI is incompatible, it's not easy to use a debug build. For that reasons, I'm working for a few years to add such debugging features into regular release build. For example, you can now get this debugger on memory allocations using PYTHONMALLOC=debug environment variable since Python 3.6. Since such debug feature is not easy to discover (especially if you don't read closely What's New In Python 3.x), I added a generic "-X dev" command line option to enable a "development mode". It enables various similar features to debug code: https://docs.python.org/dev/using/cmdline.html#id5 Effect of the developer mode: * Add default warning filter, as -W default. * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks() C function. * Enable the faulthandler module to dump the Python traceback on a crash. * Enable asyncio debug mode. * Set the dev_mode attribute of sys.flags to True See also https://pythondev.readthedocs.io/debug_tools.html where I started to document these debug tools and how to use them. > And then various extras are tossed on to the sys module to help with things. > Basically anything people have found useful and require being compiled in > typically get clumped in under the debug build. The debug build still contains many features which are useful to debug C extensions. For example, it adds sys.gettotalrefcnt() which is a convenient way to detect reference leaks. This funtion require Py_REF_DEBUG which modifies Py_INCREF() to add "_Py_RefTotal++;". Iit is has an impact on overall Python performance and should not be enabled in release build. Victor -- Night gathers, and now my watch begins. It shall not end until my death. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com