Debugging Python scripts with GDB on OSX

Hello, I'm interested to find out if debugging Python scripts with GDB is supported on OSX at all? I'm referring to the functionality described on https://wiki.python.org/moin/DebuggingWithGdb and on http://fedoraproject.org/wiki/Features/EasierPythonDebugging. I've tried so far various combinations of pre-compiled GDB from the homebrew package manager, locally-compiled GDB from homebrew, as well as locally compiled GDB from MacPorts, together with a pre-compiled Python 2.7, homebrew-compiled 2.7, and custom compiled Python 2.7 from the official source tarball. My results so far were not successful. The legacy GDB commands to show a python stack trace or the local variables - do not work. And the new GDB commands (referenced on the Fedora project page) are not present at all in any of the GDB versions. I've checked the python CI build bot tests, and it seems the new GDB commands are only successfully tested on Linux machines, and are skipped on FreeBSD, OS X, and Solaris machines. Are the new python <-> GDB commands specific to Linux? Are there any considerations to take in regards to debug symbols for Python / GDB on OSX? Has anyone attempted what I'm trying to do? I would be grateful for any advice. And I apologize if my choice of the mailing lists is not the best. Regards, Alex.

On Wed, 06 Jul 2016 16:14:34 -0000, Alexandru Croitor <alexandru.croitor@qt.io> wrote:
I tried to do this a few weeks ago myself, with similar negative results. The only thing I tried that you don't mention (I didn't try everything you did) is a compile from raw gdb source...and that didn't support OSX format core dumps. So I gave up. --David

Hi Alexandru, I stumbled over this question a little late by chance. There is the possibility to use GDB, but it is most likely that you want to use python's pdb module, instead. Only in rare cases, when debugging the interpreter itself, you use gdb. For debugging Python code, use pdb or something better. Sent from my Ei4Steve

Hi, pdb is fine for pure python scripts. I was interested in things like getting the python back trace or local variables from inside GDB, when used in conjunction with c++, so that I know which parts of C++ calls python functions, and which parts of python call c++ functions. You can't do that with pdb. On 13 Oct 2016, at 19:12, Christian Tismer <tismer@stackless.com<mailto:tismer@stackless.com>> wrote: Hi Alexandru, I stumbled over this question a little late by chance. There is the possibility to use GDB, but it is most likely that you want to use python's pdb module, instead. Only in rare cases, when debugging the interpreter itself, you use gdb. For debugging Python code, use pdb or something better. Sent from my Ei4Steve On Jul 6, 2016, at 18:14, Alexandru Croitor <alexandru.croitor@qt.io<mailto:alexandru.croitor@qt.io>> wrote: Hello, I'm interested to find out if debugging Python scripts with GDB is supported on OSX at all? I'm referring to the functionality described on https://wiki.python.org/moin/DebuggingWithGdb and on http://fedoraproject.org/wiki/Features/EasierPythonDebugging. I've tried so far various combinations of pre-compiled GDB from the homebrew package manager, locally-compiled GDB from homebrew, as well as locally compiled GDB from MacPorts, together with a pre-compiled Python 2.7, homebrew-compiled 2.7, and custom compiled Python 2.7 from the official source tarball. My results so far were not successful. The legacy GDB commands to show a python stack trace or the local variables - do not work. And the new GDB commands (referenced on the Fedora project page) are not present at all in any of the GDB versions. I've checked the python CI build bot tests, and it seems the new GDB commands are only successfully tested on Linux machines, and are skipped on FreeBSD, OS X, and Solaris machines. Are the new python <-> GDB commands specific to Linux? Are there any considerations to take in regards to debug symbols for Python / GDB on OSX? Has anyone attempted what I'm trying to do? I would be grateful for any advice. And I apologize if my choice of the mailing lists is not the best. Regards, Alex. _______________________________________________ Python-Dev mailing list Python-Dev@python.org<mailto:Python-Dev@python.org> https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/tismer%40stackless.com

Hi Alexandru, because I know that you are multi-platform, I can recommend the debugger integration of PTVS very much. I am currently using the WingWare debugger for all my projects, but the Python/C++ integration of PTVS is something that I didn't find anywhere else! Please have a look at the following introduction. https://www.youtube.com/watch?v=JNNAOypc6Ek Starting with minute 22, you will find the kind of debugging that you are looking for. I was pretty amazed by this, and it is probably very helpful in debugging Qt and PySide. Will give it a try, soon. Cheers -- Chris On 14/10/2016 11:12, Alexandru Croitor wrote:
-- Christian Tismer :^) tismer@stackless.com Software Consulting : http://www.stackless.com/ Karl-Liebknecht-Str. 121 : https://github.com/PySide 14482 Potsdam : GPG key -> 0xFB7BEE0E phone +49 173 24 18 776 fax +49 (30) 700143-0023

Hi, I'm aware of PTVS, but I was hoping of getting a crude version of that for macOS, which you could say that GDB provides. Unfortunately the GDB functionality only works on Linux, which is why I sent my message in the first place, hoping that I might be missing something. Regards, Alex.

On Friday, October 14, 2016, Alexandru Croitor <alexandru.croitor@qt.io> wrote:
From https://westurner.org/wiki/awesome-python-testing#advanced-debugging :
- https://hg.python.org/cpython/file/tip/Tools/gdb/libpython.py - https://github.com/lmacken/pyrasite/blob/develop/README.rst mentions something about codesigned GDB and OSX. - https://sourceware.org/gdb/wiki/BuildingOnDarwin - https://github.com/google/pyringe doesnt mention OSX. - dtrace probably doesn't help with stack traces or local variables: - https://github.com/benesch/python-dtrace-tracker/blob/master/dtrace-osx-appl... Are there error messages?

On Wed, 06 Jul 2016 16:14:34 -0000, Alexandru Croitor <alexandru.croitor@qt.io> wrote:
I tried to do this a few weeks ago myself, with similar negative results. The only thing I tried that you don't mention (I didn't try everything you did) is a compile from raw gdb source...and that didn't support OSX format core dumps. So I gave up. --David

Hi Alexandru, I stumbled over this question a little late by chance. There is the possibility to use GDB, but it is most likely that you want to use python's pdb module, instead. Only in rare cases, when debugging the interpreter itself, you use gdb. For debugging Python code, use pdb or something better. Sent from my Ei4Steve

Hi, pdb is fine for pure python scripts. I was interested in things like getting the python back trace or local variables from inside GDB, when used in conjunction with c++, so that I know which parts of C++ calls python functions, and which parts of python call c++ functions. You can't do that with pdb. On 13 Oct 2016, at 19:12, Christian Tismer <tismer@stackless.com<mailto:tismer@stackless.com>> wrote: Hi Alexandru, I stumbled over this question a little late by chance. There is the possibility to use GDB, but it is most likely that you want to use python's pdb module, instead. Only in rare cases, when debugging the interpreter itself, you use gdb. For debugging Python code, use pdb or something better. Sent from my Ei4Steve On Jul 6, 2016, at 18:14, Alexandru Croitor <alexandru.croitor@qt.io<mailto:alexandru.croitor@qt.io>> wrote: Hello, I'm interested to find out if debugging Python scripts with GDB is supported on OSX at all? I'm referring to the functionality described on https://wiki.python.org/moin/DebuggingWithGdb and on http://fedoraproject.org/wiki/Features/EasierPythonDebugging. I've tried so far various combinations of pre-compiled GDB from the homebrew package manager, locally-compiled GDB from homebrew, as well as locally compiled GDB from MacPorts, together with a pre-compiled Python 2.7, homebrew-compiled 2.7, and custom compiled Python 2.7 from the official source tarball. My results so far were not successful. The legacy GDB commands to show a python stack trace or the local variables - do not work. And the new GDB commands (referenced on the Fedora project page) are not present at all in any of the GDB versions. I've checked the python CI build bot tests, and it seems the new GDB commands are only successfully tested on Linux machines, and are skipped on FreeBSD, OS X, and Solaris machines. Are the new python <-> GDB commands specific to Linux? Are there any considerations to take in regards to debug symbols for Python / GDB on OSX? Has anyone attempted what I'm trying to do? I would be grateful for any advice. And I apologize if my choice of the mailing lists is not the best. Regards, Alex. _______________________________________________ Python-Dev mailing list Python-Dev@python.org<mailto:Python-Dev@python.org> https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/tismer%40stackless.com

Hi Alexandru, because I know that you are multi-platform, I can recommend the debugger integration of PTVS very much. I am currently using the WingWare debugger for all my projects, but the Python/C++ integration of PTVS is something that I didn't find anywhere else! Please have a look at the following introduction. https://www.youtube.com/watch?v=JNNAOypc6Ek Starting with minute 22, you will find the kind of debugging that you are looking for. I was pretty amazed by this, and it is probably very helpful in debugging Qt and PySide. Will give it a try, soon. Cheers -- Chris On 14/10/2016 11:12, Alexandru Croitor wrote:
-- Christian Tismer :^) tismer@stackless.com Software Consulting : http://www.stackless.com/ Karl-Liebknecht-Str. 121 : https://github.com/PySide 14482 Potsdam : GPG key -> 0xFB7BEE0E phone +49 173 24 18 776 fax +49 (30) 700143-0023

Hi, I'm aware of PTVS, but I was hoping of getting a crude version of that for macOS, which you could say that GDB provides. Unfortunately the GDB functionality only works on Linux, which is why I sent my message in the first place, hoping that I might be missing something. Regards, Alex.

On Friday, October 14, 2016, Alexandru Croitor <alexandru.croitor@qt.io> wrote:
From https://westurner.org/wiki/awesome-python-testing#advanced-debugging :
- https://hg.python.org/cpython/file/tip/Tools/gdb/libpython.py - https://github.com/lmacken/pyrasite/blob/develop/README.rst mentions something about codesigned GDB and OSX. - https://sourceware.org/gdb/wiki/BuildingOnDarwin - https://github.com/google/pyringe doesnt mention OSX. - dtrace probably doesn't help with stack traces or local variables: - https://github.com/benesch/python-dtrace-tracker/blob/master/dtrace-osx-appl... Are there error messages?
participants (4)
-
Alexandru Croitor
-
Christian Tismer
-
R. David Murray
-
Wes Turner