summaryrefslogtreecommitdiffstats
path: root/Misc
diff options
context:
space:
mode:
Diffstat (limited to 'Misc')
-rw-r--r--Misc/gdbinit23
1 files changed, 19 insertions, 4 deletions
diff --git a/Misc/gdbinit b/Misc/gdbinit
index 145cc3a..51370e2 100644
--- a/Misc/gdbinit
+++ b/Misc/gdbinit
@@ -43,12 +43,16 @@ define pylocals
end
end
-# print the current frame
+# print the current frame - verbose
+define pyframev
+ pyframe
+ pylocals
+end
+
define pyframe
- set $__fn = PyString_AsString(co->co_filename)
- set $__n = PyString_AsString(co->co_name)
+ set $__fn = (char *)((PyStringObject *)co->co_filename)->ob_sval
+ set $__n = (char *)((PyStringObject *)co->co_name)->ob_sval
printf "%s (%d): %s\n", $__fn, f->f_lineno, $__n
- pylocals
end
# Here's a somewhat fragile way to print the entire Python stack from gdb.
@@ -72,3 +76,14 @@ define pystack
end
select-frame 0
end
+
+# print the entire Python call stack - verbose mode
+define pystackv
+ while $pc < Py_Main || $pc > Py_GetArgcArgv
+ if $pc > PyEval_EvalFrame && $pc < PyEval_EvalCodeEx
+ pyframev
+ end
+ up-silently 1
+ end
+ select-frame 0
+end