aboutsummaryrefslogtreecommitdiff
path: root/scripts/gdb/linux/stackdepot.py
diff options
context:
space:
mode:
authorMaxime Ripard <mripard@kernel.org>2024-07-30 09:09:23 +0200
committerMaxime Ripard <mripard@kernel.org>2024-07-30 09:09:23 +0200
commita1ff5a7d78a036d6c2178ee5acd6ba4946243800 (patch)
tree6652a7fba9fc417eaf327b7578447a4583ebd5da /scripts/gdb/linux/stackdepot.py
parentb5fbf924f125ba3638cfdc21c0515eb7e76264ca (diff)
parent8400291e289ee6b2bf9779ff1c83a291501f017b (diff)
Merge drm/drm-fixes into drm-misc-fixes
Let's start the new drm-misc-fixes cycle by bringing in 6.11-rc1. Signed-off-by: Maxime Ripard <mripard@kernel.org>
Diffstat (limited to 'scripts/gdb/linux/stackdepot.py')
-rw-r--r--scripts/gdb/linux/stackdepot.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/scripts/gdb/linux/stackdepot.py b/scripts/gdb/linux/stackdepot.py
index 0281d9de4b7c..bb3a0f843931 100644
--- a/scripts/gdb/linux/stackdepot.py
+++ b/scripts/gdb/linux/stackdepot.py
@@ -27,14 +27,18 @@ def stack_depot_fetch(handle):
offset = parts['offset'] << DEPOT_STACK_ALIGN
pools_num = gdb.parse_and_eval('pools_num')
- if parts['pool_index'] > pools_num:
+ if handle == 0:
+ raise gdb.GdbError("handle is 0\n")
+
+ pool_index = parts['pool_index_plus_1'] - 1
+ if pool_index >= pools_num:
gdb.write("pool index %d out of bounds (%d) for stack id 0x%08x\n" % (parts['pool_index'], pools_num, handle))
return gdb.Value(0), 0
stack_pools = gdb.parse_and_eval('stack_pools')
try:
- pool = stack_pools[parts['pool_index']]
+ pool = stack_pools[pool_index]
stack = (pool + gdb.Value(offset).cast(utils.get_size_t_type())).cast(stack_record_type.get_type().pointer())
size = int(stack['size'].cast(utils.get_ulong_type()))
return stack['entries'], size