summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSkip Montanaro <skip@pobox.com>2004-04-02 14:53:55 (GMT)
committerSkip Montanaro <skip@pobox.com>2004-04-02 14:53:55 (GMT)
commit7a92d74c5204cda80d28684542e396be3fd54026 (patch)
tree1693d98e31a597ec7cbdcc3d29aaff0690a3f65a
parent74d07f2bfa32700d6bcf37fd2465c7b88054e970 (diff)
downloadcpython-7a92d74c5204cda80d28684542e396be3fd54026.zip
cpython-7a92d74c5204cda80d28684542e396be3fd54026.tar.gz
cpython-7a92d74c5204cda80d28684542e396be3fd54026.tar.bz2
It would help if I deleted the old pystack!
Also, move pystack comment down next to it
-rw-r--r--Misc/gdbinit34
1 files changed, 11 insertions, 23 deletions
diff --git a/Misc/gdbinit b/Misc/gdbinit
index 05b2612..b3b4946 100644
--- a/Misc/gdbinit
+++ b/Misc/gdbinit
@@ -26,17 +26,6 @@ define pyg
print _PyGC_Dump($arg0)
end
-# Here's a somewhat fragile way to print the entire Python stack from gdb.
-# It's fragile because the tests for the value of $pc depend on the layout
-# of specific functions in the C source code.
-
-# Explanation of while and if tests: We want to pop up the stack until we
-# land in Py_Main (this is probably an incorrect assumption in an embedded
-# interpreter, but the test can be extended by an interested party). If
-# Py_Main <= $pc <= Py_GetArgcArv is true $pc is in Py_Main(), so the while
-# tests succeeds as long as it's not true. In a similar fashion the if
-# statement tests to see if we are in eval_frame().
-
# print the local variables of the current frame
define pylocals
set $_i = 0
@@ -62,6 +51,17 @@ define pyframe
pylocals
end
+# Here's a somewhat fragile way to print the entire Python stack from gdb.
+# It's fragile because the tests for the value of $pc depend on the layout
+# of specific functions in the C source code.
+
+# Explanation of while and if tests: We want to pop up the stack until we
+# land in Py_Main (this is probably an incorrect assumption in an embedded
+# interpreter, but the test can be extended by an interested party). If
+# Py_Main <= $pc <= Py_GetArgcArv is true, $pc is in Py_Main(), so the while
+# tests succeeds as long as it's not true. In a similar fashion the if
+# statement tests to see if we are in eval_frame().
+
# print the entire Python call stack
define pystack
while $pc < Py_Main || $pc > Py_GetArgcArgv
@@ -72,15 +72,3 @@ define pystack
end
select-frame 0
end
-
-define pystack
- while $pc < Py_Main || $pc > Py_GetArgcArgv
- if $pc > eval_frame && $pc < PyEval_EvalCodeEx
- set $__fn = PyString_AsString(co->co_filename)
- set $__n = PyString_AsString(co->co_name)
- printf "%s (%d): %s\n", $__fn, f->f_lineno, $__n
- end
- up-silently 1
- end
- select-frame 0
-end