]> granicus.if.org Git - python/commitdiff
bpo-29673: fix gdb scripts pystack and pystackv (GH-6126)
authorMarcel Plch <gmarcel.plch@gmail.com>
Fri, 6 Apr 2018 21:22:04 +0000 (23:22 +0200)
committerNed Deily <nad@python.org>
Fri, 6 Apr 2018 21:22:04 +0000 (17:22 -0400)
Misc/ACKS
Misc/NEWS.d/next/Tools-Demos/2018-03-16-17-25-05.bpo-29673.m8QtaW.rst [new file with mode: 0644]
Misc/gdbinit
Python/ceval.c

index f7ac37ea7ac844902ad01e63d66d0d3e7a099e8f..b951446bab7b6e3ba2f8c3c6142b7147145e8c60 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1250,6 +1250,7 @@ Zero Piraeus
 Antoine Pitrou
 Jean-François Piéronne
 Oleg Plakhotnyuk
+Marcel Plch
 Remi Pointel
 Jon Poler
 Ariel Poliak
diff --git a/Misc/NEWS.d/next/Tools-Demos/2018-03-16-17-25-05.bpo-29673.m8QtaW.rst b/Misc/NEWS.d/next/Tools-Demos/2018-03-16-17-25-05.bpo-29673.m8QtaW.rst
new file mode 100644 (file)
index 0000000..3d515b3
--- /dev/null
@@ -0,0 +1 @@
+Fix pystackv and pystack gdbinit macros.
index 9f216215eac2b886d82cfaf5a6db51f4fbf3ebca..afefe0818e4c77abb6437cd1a54c2d2a19dae1d6 100644 (file)
@@ -42,8 +42,8 @@ define pylocals
     set $_i = 0
     while $_i < f->f_code->co_nlocals
        if f->f_localsplus + $_i != 0
-           set $_names = co->co_varnames
-           set $_name = _PyUnicode_AsString(PyTuple_GetItem($_names, $_i))
+           set $_names = f->f_code->co_varnames
+           set $_name = PyUnicode_AsUTF8(PyTuple_GetItem($_names, $_i))
            printf "%s:\n", $_name
             pyo f->f_localsplus[$_i]
        end
@@ -84,8 +84,8 @@ define pyframev
 end
 
 define pyframe
-    set $__fn = _PyUnicode_AsString(co->co_filename)
-    set $__n = _PyUnicode_AsString(co->co_name)
+    set $__fn = PyUnicode_AsUTF8(f->f_code->co_filename)
+    set $__n = PyUnicode_AsUTF8(f->f_code->co_name)
     printf "%s (", $__fn
     lineno
     printf "): %s\n", $__n
@@ -110,7 +110,7 @@ end
 #end
 
 define printframe
-    if $pc > PyEval_EvalFrameEx && $pc < PyEval_EvalCodeEx
+    if $pc > PyEval_EvalFrameEx && $pc < _PyEval_EvalFrameDefault
        pyframe
     else
         frame
@@ -139,7 +139,7 @@ document pystack
 end
 define pystack
     while $pc < Py_Main || $pc > Py_GetArgcArgv
-        if $pc > PyEval_EvalFrameEx && $pc < PyEval_EvalCodeEx
+        if $pc > PyEval_EvalFrameEx && $pc < _PyEval_EvalFrameDefault
            pyframe
         end
         up-silently 1
@@ -152,7 +152,7 @@ document pystackv
 end
 define pystackv
     while $pc < Py_Main || $pc > Py_GetArgcArgv
-        if $pc > PyEval_EvalFrameEx && $pc < PyEval_EvalCodeEx
+        if $pc > PyEval_EvalFrameEx && $pc < _PyEval_EvalFrameDefault
            pyframev
         end
         up-silently 1
index da83e41f5ddddcdbee8664280d0d7bcff7ccf174..422a29ed77d65776ba4c22defa5e26aa3b96b54d 100644 (file)
@@ -3661,7 +3661,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
-   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). */
 
 PyObject *