@@ -64,7 +64,8 @@ StackFrame::StackFrame(const ThreadSP &thread_sp, user_id_t frame_idx,
6464 const SymbolContext *sc_ptr)
6565 : m_thread_wp(thread_sp), m_frame_index(frame_idx),
6666 m_concrete_frame_index(unwind_frame_index), m_reg_context_sp(),
67- m_id(pc, cfa), m_frame_code_addr(pc), m_sc(), m_flags(), m_frame_base(),
67+ m_id(pc, cfa, nullptr , thread_sp->GetProcess ().get()),
68+ m_frame_code_addr(pc), m_sc(), m_flags(), m_frame_base(),
6869 m_frame_base_error(), m_cfa_is_valid(cfa_is_valid),
6970 m_stack_frame_kind(kind),
7071 m_behaves_like_zeroth_frame(behaves_like_zeroth_frame),
@@ -74,7 +75,7 @@ StackFrame::StackFrame(const ThreadSP &thread_sp, user_id_t frame_idx,
7475 // recursive functions properly aren't confused with one another on a history
7576 // stack.
7677 if (IsHistorical () && !m_cfa_is_valid) {
77- m_id.SetCFA (m_frame_index);
78+ m_id.SetCFA (m_frame_index, thread_sp-> GetProcess (). get () );
7879 }
7980
8081 if (sc_ptr != nullptr ) {
@@ -90,9 +91,11 @@ StackFrame::StackFrame(const ThreadSP &thread_sp, user_id_t frame_idx,
9091 const SymbolContext *sc_ptr)
9192 : m_thread_wp(thread_sp), m_frame_index(frame_idx),
9293 m_concrete_frame_index(unwind_frame_index),
93- m_reg_context_sp(reg_context_sp), m_id(pc, cfa), m_frame_code_addr(pc),
94- m_sc(), m_flags(), m_frame_base(), m_frame_base_error(),
95- m_cfa_is_valid(true ), m_stack_frame_kind(StackFrame::Kind::Regular),
94+ m_reg_context_sp(reg_context_sp),
95+ m_id(pc, cfa, nullptr , thread_sp->GetProcess ().get()),
96+ m_frame_code_addr(pc), m_sc(), m_flags(), m_frame_base(),
97+ m_frame_base_error(), m_cfa_is_valid(true ),
98+ m_stack_frame_kind(StackFrame::Kind::Regular),
9699 m_behaves_like_zeroth_frame(behaves_like_zeroth_frame),
97100 m_variable_list_sp(), m_variable_list_value_objects(),
98101 m_recognized_frame_sp(), m_disassembly(), m_mutex() {
@@ -116,7 +119,8 @@ StackFrame::StackFrame(const ThreadSP &thread_sp, user_id_t frame_idx,
116119 : m_thread_wp(thread_sp), m_frame_index(frame_idx),
117120 m_concrete_frame_index(unwind_frame_index),
118121 m_reg_context_sp(reg_context_sp),
119- m_id(pc_addr.GetLoadAddress(thread_sp->CalculateTarget ().get()), cfa),
122+ m_id(pc_addr.GetLoadAddress(thread_sp->CalculateTarget ().get()), cfa,
123+ nullptr, thread_sp->GetProcess().get()),
120124 m_frame_code_addr(pc_addr), m_sc(), m_flags(), m_frame_base(),
121125 m_frame_base_error(), m_cfa_is_valid(true ),
122126 m_stack_frame_kind(StackFrame::Kind::Regular),
@@ -2002,7 +2006,9 @@ void StackFrame::UpdatePreviousFrameFromCurrentFrame(StackFrame &curr_frame) {
20022006 std::lock_guard<std::recursive_mutex> guard (m_mutex);
20032007 assert (GetStackID () ==
20042008 curr_frame.GetStackID ()); // TODO: remove this after some testing
2005- m_id.SetPC (curr_frame.m_id .GetPC ()); // Update the Stack ID PC value
2009+ m_id.SetPC (
2010+ curr_frame.m_id .GetPC (),
2011+ curr_frame.CalculateProcess ().get ()); // Update the Stack ID PC value
20062012 assert (GetThread () == curr_frame.GetThread ());
20072013 m_frame_index = curr_frame.m_frame_index ;
20082014 m_concrete_frame_index = curr_frame.m_concrete_frame_index ;
0 commit comments