[3.7] bpo-29673: fix gdb scripts pystack and pystackv (GH-6126) (GH-6399)
(cherry picked from commit 3a9ccee0e5
)
Co-authored-by: Marcel Plch <gmarcel.plch@gmail.com>
This commit is contained in:
parent
252f10cbac
commit
3c193cf8af
|
@ -1248,6 +1248,7 @@ Zero Piraeus
|
||||||
Antoine Pitrou
|
Antoine Pitrou
|
||||||
Jean-François Piéronne
|
Jean-François Piéronne
|
||||||
Oleg Plakhotnyuk
|
Oleg Plakhotnyuk
|
||||||
|
Marcel Plch
|
||||||
Remi Pointel
|
Remi Pointel
|
||||||
Jon Poler
|
Jon Poler
|
||||||
Ariel Poliak
|
Ariel Poliak
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Fix pystackv and pystack gdbinit macros.
|
14
Misc/gdbinit
14
Misc/gdbinit
|
@ -36,8 +36,8 @@ define pylocals
|
||||||
set $_i = 0
|
set $_i = 0
|
||||||
while $_i < f->f_code->co_nlocals
|
while $_i < f->f_code->co_nlocals
|
||||||
if f->f_localsplus + $_i != 0
|
if f->f_localsplus + $_i != 0
|
||||||
set $_names = co->co_varnames
|
set $_names = f->f_code->co_varnames
|
||||||
set $_name = _PyUnicode_AsString(PyTuple_GetItem($_names, $_i))
|
set $_name = PyUnicode_AsUTF8(PyTuple_GetItem($_names, $_i))
|
||||||
printf "%s:\n", $_name
|
printf "%s:\n", $_name
|
||||||
pyo f->f_localsplus[$_i]
|
pyo f->f_localsplus[$_i]
|
||||||
end
|
end
|
||||||
|
@ -76,8 +76,8 @@ define pyframev
|
||||||
end
|
end
|
||||||
|
|
||||||
define pyframe
|
define pyframe
|
||||||
set $__fn = _PyUnicode_AsString(co->co_filename)
|
set $__fn = PyUnicode_AsUTF8(f->f_code->co_filename)
|
||||||
set $__n = _PyUnicode_AsString(co->co_name)
|
set $__n = PyUnicode_AsUTF8(f->f_code->co_name)
|
||||||
printf "%s (", $__fn
|
printf "%s (", $__fn
|
||||||
lineno
|
lineno
|
||||||
printf "): %s\n", $__n
|
printf "): %s\n", $__n
|
||||||
|
@ -102,7 +102,7 @@ end
|
||||||
#end
|
#end
|
||||||
|
|
||||||
define printframe
|
define printframe
|
||||||
if $pc > PyEval_EvalFrameEx && $pc < PyEval_EvalCodeEx
|
if $pc > PyEval_EvalFrameEx && $pc < _PyEval_EvalFrameDefault
|
||||||
pyframe
|
pyframe
|
||||||
else
|
else
|
||||||
frame
|
frame
|
||||||
|
@ -129,7 +129,7 @@ end
|
||||||
# print the entire Python call stack
|
# print the entire Python call stack
|
||||||
define pystack
|
define pystack
|
||||||
while $pc < Py_Main || $pc > Py_GetArgcArgv
|
while $pc < Py_Main || $pc > Py_GetArgcArgv
|
||||||
if $pc > PyEval_EvalFrameEx && $pc < PyEval_EvalCodeEx
|
if $pc > PyEval_EvalFrameEx && $pc < _PyEval_EvalFrameDefault
|
||||||
pyframe
|
pyframe
|
||||||
end
|
end
|
||||||
up-silently 1
|
up-silently 1
|
||||||
|
@ -140,7 +140,7 @@ end
|
||||||
# print the entire Python call stack - verbose mode
|
# print the entire Python call stack - verbose mode
|
||||||
define pystackv
|
define pystackv
|
||||||
while $pc < Py_Main || $pc > Py_GetArgcArgv
|
while $pc < Py_Main || $pc > Py_GetArgcArgv
|
||||||
if $pc > PyEval_EvalFrameEx && $pc < PyEval_EvalCodeEx
|
if $pc > PyEval_EvalFrameEx && $pc < _PyEval_EvalFrameDefault
|
||||||
pyframev
|
pyframev
|
||||||
end
|
end
|
||||||
up-silently 1
|
up-silently 1
|
||||||
|
|
|
@ -3650,7 +3650,7 @@ too_many_positional(PyCodeObject *co, Py_ssize_t given, Py_ssize_t defcount,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is gonna seem *real weird*, but if you put some other code between
|
/* This is gonna seem *real weird*, but if you put some other code between
|
||||||
PyEval_EvalFrame() and PyEval_EvalCodeEx() you will need to adjust
|
PyEval_EvalFrame() and _PyEval_EvalFrameDefault() you will need to adjust
|
||||||
the test in the if statements in Misc/gdbinit (pystack and pystackv). */
|
the test in the if statements in Misc/gdbinit (pystack and pystackv). */
|
||||||
|
|
||||||
PyObject *
|
PyObject *
|
||||||
|
|
Loading…
Reference in New Issue