@@ -112,16 +112,7 @@ fn thread_picker(cx: &mut Context, callback_fn: impl Fn(&mut Editor, &dap::Threa
112112 }
113113
114114 let thread_states = debugger.thread_states.clone();
115− let mut top_frames: HashMap<isize, StackFrame> = HashMap::new();
116− for thread in threads.clone() {
117− if let Some(frame) = block_on(debugger.stack_trace(thread.id))
118− .ok()
119− .and_then(|(bt, _)| bt.get(0).cloned())
120− {
121− top_frames.insert(thread.id, frame);
122− }
123− }
124−
115+ let frames = debugger.stack_frames.clone();
125116 let picker = FilePicker::new(
126117 threads,
127118 move |thread| {
@@ -136,7 +127,7 @@ fn thread_picker(cx: &mut Context, callback_fn: impl Fn(&mut Editor, &dap::Threa
136127 },
137128 move |editor, thread, _action| callback_fn(editor, thread),
138129 move |_editor, thread| {
139− if let Some(frame) = top_frames.get(&thread.id) {
130+ if let Some(frame) = frames.get(&thread.id).and_then(|bt| bt.get(0)) {
140131 frame
141132 .source
142133 .as_ref()