Open smnemeth opened 5 years ago
Our gdb doesn't include the embedded python interpreter. I just use a recent system gdb instead. If you wanted to, a standalone GDB package with python integration would be useful. Maybe conda-forge would accept such a package?
Our gdb doesn't include the embedded python interpreter. I just use a recent system gdb instead. If you wanted to, a standalone GDB package with python integration would be useful. Maybe conda-forge would accept such a package?
Thanks for the reply Ray. Really I don't want to debug python code so I don't need the python integration. Just looking to debug C++ extensions. Can't seem to get past the "Don't know how to run. Try "help target". I thought gdb would run python as C code and stop in any C++ python extension errors, is python integration necessary for that?
Yes it is.
You can run also python and stick an infinite loop in your extension module then connect to python's PID with gdb.
I ran into a similar problem with the gdb_linux-64
package. Trying to attach to an already running process, I get a Don't know how to attach
error:
GNU gdb (crosstool-NG fa8859cb) 7.12.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=x86_64-build_pc-linux-gnu --target=x86_64-conda_cos6-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Don't know how to attach. Try "help target".
The conda-forge gdb
package works just fine though.
Edit: There is an issue with ncurses
that affects many package including gdb
:
The defaults ncurses doesn't have the versioned libtinfo.so.6 (it only has libtinfo.so)
See https://github.com/conda-forge/emacs-feedstock/issues/24
Actual Behavior
I'm trying to debug a C++ python extension that was built using the new Anaconda compilers. Note I'm not trying to debug the python .py code, nor the C python code, just the C/C++ extensions we developed. The gdb package gdb_linux-64 was also installed to the environment. When running gdb I get the following:
$ x86_64-conda_cos6-linux-gnu-gdb python GNU gdb (crosstool-NG fa8859cb) 7.12.1 Copyright (C) 2017 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=x86_64-build_pc-linux-gnu --target=x86_64-conda_cos6-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from python...done. (gdb) run gdb_test.py Don't know how to run. Try "help target".
This same approach of running gdb and python works fine for the system python. It's probably something simple, however, after much web searching and looking at other issues, I could not find much help on how to run the Anaconda gdb in an environment. I tried "help target", but it's not very clear what to do. Perhaps ~/.gdbinit needs something added, currently I don't have one.
Any guidance on how to get gdb working would be most appreciated.
Expected Behavior
The gdb program runs the test script.
Steps to Reproduce
Discussed in Actual Behavior above.
Anaconda or Miniconda version:
conda 4.5.11
Operating System:
Linux Mint 18.3 (linux-64)
conda info
conda list --show-channel-urls