🌐 AI搜索 & 代理 主页
Skip to content

Commit e528bc1

Browse files
committed
Fix limits
1 parent 1944a02 commit e528bc1

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

Lib/test/test_external_inspection.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2724,11 +2724,11 @@ def recurse(n):
27242724
unwinder_no_cache = make_unwinder(cache_frames=False)
27252725

27262726
frames_cached = self._sample_frames(
2727-
client_socket, unwinder_cache, b"ready", b"ack", {"recurse"}, 1100
2727+
client_socket, unwinder_cache, b"ready", b"ack", {"recurse"}, expected_frames=1102
27282728
)
27292729
# Sample again with no cache for comparison
27302730
frames_no_cache = self._sample_frames(
2731-
client_socket, unwinder_no_cache, b"ready2", b"done", {"recurse"}, 1100
2731+
client_socket, unwinder_no_cache, b"ready2", b"done", {"recurse"}, expected_frames=1102
27322732
)
27332733

27342734
self.assertIsNotNone(frames_cached)

Modules/_remote_debugging/frame_cache.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,8 +221,10 @@ frame_cache_store(
221221
// Clear old frame_list if replacing
222222
Py_CLEAR(entry->frame_list);
223223

224-
// Store data - truncate frame_list to match num_addrs
225-
entry->frame_list = PyList_GetSlice(frame_list, 0, num_addrs);
224+
// Store full frame list (don't truncate to num_addrs - frames beyond the
225+
// address array limit are still valid and needed for full cache hits)
226+
Py_ssize_t num_frames = PyList_GET_SIZE(frame_list);
227+
entry->frame_list = PyList_GetSlice(frame_list, 0, num_frames);
226228
if (!entry->frame_list) {
227229
return -1;
228230
}

0 commit comments

Comments
 (0)