Commit Graph

66 Commits

Author SHA1 Message Date
Victor Stinner
d22fc0bc7d bpo-32962: python-gdb catchs UnicodeDecodeError (GH-7693)
python-gdb now catchs UnicodeDecodeError exceptions when calling
string().
2018-06-14 22:34:52 +02:00
Victor Stinner
019d33b7a4 bpo-32962: python-gdb catchs ValueError on read_var() (GH-7692)
python-gdb now catchs ValueError on read_var(): when Python has no
debug symbols for example.
2018-06-14 16:28:07 +02:00
Gregory P. Smith
53f67d401d bpo-33312: update Tools/gdb/libpython.py to match. (GH-6548) 2018-04-20 11:32:08 -07:00
Łukasz Langa
5fe59f8e3a bpo-30983: [gdb] Fix py-bt, etc. for non-debug shared builds (#3153)
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.
2017-08-21 16:40:29 -07:00
Victor Stinner
7cc33998b8 bpo-30983: Revert changes which broke most buildbots (#3100)
* Revert "Add Bruno Penteado to ACKS (#3091)"

This reverts commit f978405b3f.

* Revert "bpo-30983: eval frame rename in pep 0523 broke gdb's python extension (#2803)"

This reverts commit 2e0f4db114.
2017-08-16 11:02:05 +02:00
Bruno "Polaco" Penteado
2e0f4db114 bpo-30983: eval frame rename in pep 0523 broke gdb's python extension (#2803)
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
2017-08-14 15:14:17 -07:00
Jon Dufresne
3972628de3 bpo-30296 Remove unnecessary tuples, lists, sets, and dicts (#1489)
* 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())
2017-05-18 07:35:54 -07:00
Lev Abalkin
661ca8843f Fixes bpo-29680: Older gdb does not have gdb.error. (#363)
This change is required to make python-dbg.py compatible with GDB versions before 7.3.
2017-03-01 13:16:23 -05:00
INADA Naoki
5566bbb8d5 Issue #29263: LOAD_METHOD support for C methods
Calling builtin method is at most 10% faster.
2017-02-03 07:43:03 +09:00
Victor Stinner
611083331d python-gdb.py supports method-wrapper
Issue #29367: python-gdb.py now supports also method-wrapper (wrapperobject)
objects.
2017-02-01 16:29:54 +01:00
Victor Stinner
fa025f112f Update and enhance python-gdb.py
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
2017-01-18 17:20:01 +01:00
Victor Stinner
7612f1e36a Fix Python 2.6 support in python-gdb.py
Issue #29259.
2017-01-18 13:49:43 +01:00
Victor Stinner
7fc252adfb Optimize _PyCFunction_FastCallKeywords()
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.
2017-01-16 17:18:53 +01:00
Victor Stinner
cb5fe9c22c Merge 3.5 2016-12-16 10:00:53 +01:00
Victor Stinner
610f5d739d python-gdb.py: catch gdb.error on gdb.selected_frame() 2016-12-16 10:00:39 +01:00
Victor Stinner
eae64fda5b Issue #28770: Update python-gdb.py for fastcalls
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.
2016-11-22 22:53:18 +01:00
Victor Stinner
3a5d79fbc8 Issue #28023: Fix python-gdb.py on old GDB versions
Replace int(value.address)+offset with value.cast(unsigned char*)+offset.

It seems like int(value.address) fails on old versions of GDB.
2016-11-22 13:09:39 +01:00
INADA Naoki
d7d2bc8798 Issue #28023: Fix python-gdb.py didn't support new dict implementation 2016-11-22 19:40:58 +09:00
Gregory P. Smith ext:(%20%5BGoogle%20Inc.%5D)
a68c1bca7b Remove legacy "from __future__ import with_statement" lines. 2016-09-08 13:47:41 -07:00
Victor Stinner
19620c57d7 gdb/libpython.py: inline _type_void_ptr()
The function was only called in _sizeof_void_p()
2016-04-20 18:26:12 +02:00
Victor Stinner
4e75ca87e3 python-gdb.py: get C types at runtime
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.
2016-04-20 18:07:21 +02:00
Martin Panter
7462b64911 Issue #25523: Correct "a" article to "an" article
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.
2015-11-02 03:37:02 +00:00
Serhiy Storchaka
8f8ec92de8 Issue #19936: Added executable bits or shebang lines to Python scripts which
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.
2014-01-16 17:33:23 +02:00
Serhiy Storchaka
b992a0e102 Issue #19936: Added executable bits or shebang lines to Python scripts which
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.
2014-01-16 17:15:49 +02:00
Antoine Pitrou
59b7ff2d43 Undo (hopefully) buildbot failures 2013-11-23 18:22:02 +01:00