| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#3192)
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.
(cherry picked from commit 5fe59f8e3a0a56a155c18f9d581205ec533764b6)
|
|
|
|
|
| |
extension (GH-2803) (#3090)" (#3101)
This reverts commit 09b77165e3fffa7b7ff160ad06042cdcfa004bf5.
|
|
|
|
|
|
|
|
|
|
| |
(GH-2803) (#3090)
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
(cherry picked from commit 2e0f4db114)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* python-gdb.py supports method-wrapper
bpo-29367: python-gdb.py now supports also method-wrapper (wrapperobject)
objects.
(cherry picked from commit 611083331d534481ca7956a376e38fb0e9ef3854)
* Update and enhance python-gdb.py
bpo-29259: Detect PyCFunction is the current frame, not only in the
older frame.
|
|
|
|
| |
This change is required to make python-dbg.py compatible with GDB versions before 7.3.
(cherry picked from commit 661ca8843fed1183e38db06e52d59ac300bf1c2a)
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
Replace int(value.address)+offset with value.cast(unsigned char*)+offset.
It seems like int(value.address) fails on old versions of GDB.
|
| | |
|
|/ |
|
|
|
|
| |
The function was only called in _sizeof_void_p()
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| |/ |
|
| | |
|
| | |
|
| | |
|
|\ \
| |/
| |
| | |
in docstrings and comments.
|
| |
| |
| |
| | |
in docstrings and comments.
|
|\ \
| |/ |
|
| | |
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| | |
(test.test_gdb.PyBtTests)
|
|/
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Patch from Serhiy Storchaka.
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Patch from Mark Shannon.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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()
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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()
|
| | |
|
| | |
|
| |
| |
| |
| | |
The lookup fails at startup if Python is linked to a shared library.
|
| | |
|
| |
| |
| |
| |
| | |
_PyUnicode_CheckConsistency() checks also hash and length value for not ready
Unicode strings.
|
| |
| |
| |
| | |
(issue #13130)
|
| |
| |
| |
| |
| | |
ascii=1 is no more reserved to PyASCIIObject. Use
PyUnicode_IS_COMPACT_ASCII(obj) to check if obj is a PyASCIIObject (as before).
|
| | |
|
|/ |
|
|
|
|
|
| |
py-list displays the error. py-bt ignores the error (the filename and line
number is already displayed).
|
|
|
|
| |
a smarter "py-bt" command printing a classic Python traceback.
|
| |
|
|
|
|
| |
a bug in ascii().
|
|
|
|
| |
(followup to r84635, suggested by Dave Malcolm).
|
|
|
|
|
| |
as wide (UCS4) unicode builds for both the host interpreter (embedded
inside gdb) and the interpreter under test.
|
|
|
|
|
|
|
| |
Encode unicode strings to the terminal encoding with backslashreplace error (as
Python does for sys.stderr) before writing them to sys.stdout. It fixes
UnicodeEncodeError on writing non-ascii characters in an ascii terminal (C
locale: ASCII encoding).
|