summaryrefslogtreecommitdiffstats
path: root/Tools/gdb/libpython.py
Commit message (Collapse)AuthorAgeFilesLines
* closes bpo-16637: libpython: construct integer object directly from gdbvalue ↵Marc Hartmayer2019-09-241-1/+1
| | | | | | | | (GH-15232) This fixes the exception '`ValueError: invalid literal for int() with base 10` if `str(gdbval)` returns a hexadecimal value (e.g. '0xa0'). This is the case if the output-radix is set to 16 in gdb. See https://sourceware.org/gdb/onlinedocs/gdb/Numbers.html for more information.
* bpo-37151: remove special case for PyCFunction from PyObject_Call (GH-14684)Jeroen Demeyer2019-09-111-1/+1
| | | | | | | bpo-37151: remove special case for PyCFunction from PyObject_Call Alse, make the undocumented function PyCFunction_Call an alias of PyObject_Call and deprecate it.
* bpo-36974: separate vectorcall functions for each calling convention (GH-13781)Jeroen Demeyer2019-07-051-2/+2
|
* bpo-37151: remove _PyCFunction_FastCallDict (GH-14269)Jeroen Demeyer2019-06-201-2/+1
|
* bpo-36974: rename _FastCallKeywords -> _Vectorcall (GH-13653)Jeroen Demeyer2019-05-301-1/+1
|
* bpo-36974: Fix GDB integration (GH-13665)Petr Viktorin2019-05-291-1/+2
| | | | | | | | | | | As it changes the way functions are called, the PEP 590 implementation skipped the functions that the GDB integration is looking for (by name) to find function calls. Looking for the new helper `cfunction_call_varargs` hopefully fixes the tests, and thus buildbots. The changed frame nuber in test_gdb is due to there being fewer C calls when calling a built-in method.
* bpo-35132: Fixes missing target in gdb pep0393 check. (GH-11848)Lisa Roach2019-03-121-1/+1
|
* bpo-34989: python-gdb.py: fix current_line_num() (GH-9889)Victor Stinner2018-10-151-13/+33
| | | | | | | | | | | | | | python-gdb.py now handles errors on computing the line number of a Python frame. Changes: * PyFrameObjectPtr.current_line_num() now catchs any Exception on calling addr2line(), instead of failing with a surprising "<class 'TypeError'> 'FakeRepr' object is not subscriptable" error. * All callers of current_line_num() now handle current_line_num() returning None. * PyFrameObjectPtr.current_line() now also catchs IndexError on getting a line from the Python source file.
* bpo-32962: python-gdb catchs UnicodeDecodeError (GH-7693)Victor Stinner2018-06-141-10/+16
| | | | python-gdb now catchs UnicodeDecodeError exceptions when calling string().
* bpo-32962: python-gdb catchs ValueError on read_var() (GH-7692)Victor Stinner2018-06-141-2/+9
| | | | python-gdb now catchs ValueError on read_var(): when Python has no debug symbols for example.
* bpo-33312: update Tools/gdb/libpython.py to match. (GH-6548)Gregory P. Smith2018-04-201-1/+1
|
* bpo-30983: [gdb] Fix py-bt, etc. for non-debug shared builds (#3153)Łukasz Langa2017-08-211-9/+11
| | | | | | | | | | | | PEP 523 introduced _PyEval_EvalFrameDefault which inlines PyEval_EvalFrameEx on non-debug shared builds. This breaks the ability to use py-bt, py-up, and a few other Python-specific gdb integrations. This patch fixes the problem by only looking for _PyEval_EvalFrameDefault frames. test_gdb passes on both a debug and a non-debug build. Original patch by Bruno "Polaco" Penteado.
* bpo-30983: Revert changes which broke most buildbots (#3100)Victor Stinner2017-08-161-4/+2
| | | | | | | | | | * Revert "Add Bruno Penteado to ACKS (#3091)" This reverts commit f978405b3f092e4005b92ba1dbaab15f609b3bb0. * Revert "bpo-30983: eval frame rename in pep 0523 broke gdb's python extension (#2803)" This reverts commit 2e0f4db114424a00354eab889ba8f7334a2ab8f0.
* bpo-30983: eval frame rename in pep 0523 broke gdb's python extension (#2803)Bruno "Polaco" Penteado2017-08-141-2/+4
| | | | | | | pep 0523 renames PyEval_EvalFrameEx to _PyEval_EvalFrameDefault while the gdb python extension only looks for PyEval_EvalFrameEx to understand if it is dealing with a frame. Final effect is that attaching gdb to a python3.6 process doesnt resolve python objects. Eg. py-list and py-bt dont work properly. This patch fixes that. Tested locally on python3.6
* bpo-30296 Remove unnecessary tuples, lists, sets, and dicts (#1489)Jon Dufresne2017-05-181-2/+2
| | | | | | | | * Replaced list(<generator expression>) with list comprehension * Replaced dict(<generator expression>) with dict comprehension * Replaced set(<list literal>) with set literal * Replaced builtin func(<list comprehension>) with func(<generator expression>) when supported (e.g. any(), all(), tuple(), min(), & max())
* Fixes bpo-29680: Older gdb does not have gdb.error. (#363)Lev Abalkin2017-03-011-1/+1
| | | This change is required to make python-dbg.py compatible with GDB versions before 7.3.
* Issue #29263: LOAD_METHOD support for C methodsINADA Naoki2017-02-021-4/+1
| | | | Calling builtin method is at most 10% faster.
* python-gdb.py supports method-wrapperVictor Stinner2017-02-011-5/+48
| | | | | Issue #29367: python-gdb.py now supports also method-wrapper (wrapperobject) objects.
* Update and enhance python-gdb.pyVictor Stinner2017-01-181-16/+10
| | | | | | | | Issue #29259: * Detect PyCFunction is the current frame, not only in the older frame * Ignore PyCFunction_Call() since it now calls _PyCFunction_FastCallDict(), and _PyCFunction_FastCallDict() is already detected
* Fix Python 2.6 support in python-gdb.pyVictor Stinner2017-01-181-2/+2
| | | | Issue #29259.
* Optimize _PyCFunction_FastCallKeywords()Victor Stinner2017-01-161-1/+2
| | | | | | | | | | | | | | Issue #29259: Write fast path in _PyCFunction_FastCallKeywords() for METH_FASTCALL, avoid the creation of a temporary dictionary for keyword arguments. Cleanup also _PyCFunction_FastCallDict(): * Don't dereference func before checking that it's not NULL * Move code to raise the "no keyword argument" exception into a new no_keyword_error label. Update python-gdb.py for the change.
* Merge 3.5Victor Stinner2016-12-161-2/+18
|\
| * python-gdb.py: catch gdb.error on gdb.selected_frame()Victor Stinner2016-12-161-2/+18
| |
* | Issue #28770: Update python-gdb.py for fastcallsVictor Stinner2016-11-221-16/+31
| | | | | | | | | | | | | | | | Frame.is_other_python_frame() now also handles _PyCFunction_FastCallDict() frames. Thanks to the new code to handle fast calls, python-gdb.py is now also able to detect the <built-in id method of module ...> frame.
* | Issue #28023: Fix python-gdb.py on old GDB versionsVictor Stinner2016-11-221-2/+6
| | | | | | | | | | | | Replace int(value.address)+offset with value.cast(unsigned char*)+offset. It seems like int(value.address) fails on old versions of GDB.
* | Issue #28023: Fix python-gdb.py didn't support new dict implementationINADA Naoki2016-11-221-2/+26
| |
* | Remove legacy "from __future__ import with_statement" lines.Gregory P. Smith ext:(%20%5BGoogle%20Inc.%5D)2016-09-081-1/+1
|/
* gdb/libpython.py: inline _type_void_ptr()Victor Stinner2016-04-201-10/+4
| | | | The function was only called in _sizeof_void_p()
* python-gdb.py: get C types at runtimeVictor Stinner2016-04-201-14/+33
| | | | | | | | Issue #26799: Fix python-gdb.py: don't get once C types when the Python code is loaded, but get C types on demande. The C types can change if python-gdb.py is loaded before the Python executable. Patch written by Thomas Ilsche.
* Issue #25523: Correct "a" article to "an" articleMartin Panter2015-11-021-2/+2
| | | | | | This changes the main documentation, doc strings, source code comments, and a couple error messages in the test suite. In some cases the word was removed or edited some other way to fix the grammar.
* Issue #19936: Added executable bits or shebang lines to Python scripts whichSerhiy Storchaka2014-01-161-0/+0
|\ | | | | | | | | | | | | requires them. Disable executable bits and shebang lines in test and benchmark files in order to prevent using a random system python, and in source files of modules which don't provide command line interface. Fixed shebang lines in the unittestgui and checkpip scripts.
| * Issue #19936: Added executable bits or shebang lines to Python scripts whichSerhiy Storchaka2014-01-161-0/+0
| | | | | | | | | | | | | | requires them. Disable executable bits and shebang lines in test and benchmark files in order to prevent using a random system python, and in source files of modules which don't provide command line interface. Fixed shebang line to use python3 executable in the unittestgui script.
* | Undo (hopefully) buildbot failuresAntoine Pitrou2013-11-231-1/+1
|\ \ | |/
| * Undo (hopefully) buildbot failuresAntoine Pitrou2013-11-231-1/+1
| |
| * Issue #19308: fix the gdb plugin on gdbs linked with Python 3Antoine Pitrou2013-11-231-52/+69
| |
* | Issue #19308: fix the gdb plugin on gdbs linked with Python 3Antoine Pitrou2013-11-231-52/+69
| |
* | Issue #18743: Fix references to non-existant "StringIO" moduleSerhiy Storchaka2013-08-291-1/+1
|\ \ | |/ | | | | in docstrings and comments.
| * Issue #18743: Fix references to non-existant "StringIO" moduleSerhiy Storchaka2013-08-291-1/+1
| | | | | | | | in docstrings and comments.
* | #18803: merge with 3.3.Ezio Melotti2013-08-251-1/+1
|\ \ | |/
| * #18803: fix more typos. Patch by Févry Thibault.Ezio Melotti2013-08-251-1/+1
| |
* | Issue #18772: fix the gdb plugin after the set implementation changesAntoine Pitrou2013-08-241-21/+19
| |
* | #17833: merge with 3.3David Malcolm2013-05-061-1/+1
|\ \ | |/
| * #17833: fix test_gdb failures seen on PPC64 Linux in test_threads ↵David Malcolm2013-05-061-1/+1
| | | | | | | | (test.test_gdb.PyBtTests)
* | python-gdb.py: Replace invalid Unicode character with U+FFFD to be able toVictor Stinner2013-04-111-1/+3
|/ | | | | | display invalid strings. Such strings can be found while Python is creating a new string, in a text decoder for example, when Python is compiled in debug mode.
* Fix a few typos and a double semicolon. Patch by Eitan Adler.Ezio Melotti2013-01-271-1/+1
|
* compare singletons by identity not equality (closes #16712)Benjamin Peterson2012-10-091-1/+1
| | | | Patch from Serhiy Storchaka.
* Issue #12605: Show information on more C frames within gdb backtracesDavid Malcolm2012-06-271-9/+92
| | | | | | | | | The gdb hooks for debugging CPython (within Tools/gdb) have been enhanced to show information on more C frames relevant to CPython within the "py-bt" and "py-bt-full" commands: * C frames that are waiting on the GIL * C frames that are garbage-collecting * C frames that are due to the invocation of a PyCFunction
* Implement PEP 412: Key-sharing dictionaries (closes #13903)Benjamin Peterson2012-04-231-3/+8
| | | | Patch from Mark Shannon.
* (Merge 3.2) Issue #13628: python-gdb.py is now able to retrieve more frames inVictor Stinner2011-12-191-13/+32
|\ | | | | | | | | | | | | | | | | | | | | | | | | the Python traceback if Python is optimized. * delay the lookup of the size_t type, it is not available at startup * The second argument of the PyFrameObjectPtr constructor is optional, as done in other constructors * iter_builtins() and iter_globals() methods of PyFrameObjectPtr returns an empty tuple instead of None if Python is optimized * Fix py-bt and py-bt-full to handle correctly "optimized" frames * Frame.get_pyop() tries to get the frame pointer from PyEval_EvalCodeEx() if the pointer is optimized out in PyEval_EvalFrameEx()
| * Issue #13628: python-gdb.py is now able to retrieve more frames in the PythonVictor Stinner2011-12-191-13/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | traceback if Python is optimized. * delay the lookup of the size_t type, it is not available at startup * The second argument of the PyFrameObjectPtr constructor is optional, as done in other constructors * iter_builtins() and iter_globals() methods of PyFrameObjectPtr returns an empty tuple instead of None if Python is optimized * Fix py-bt and py-bt-full to handle correctly "optimized" frames * Frame.get_pyop() tries to get the frame pointer from PyEval_EvalCodeEx() if the pointer is optimized out in PyEval_EvalFrameEx()