void StackWnd::ItemChanged( int nItem ) { CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd(); if( nItem >= 0 && nItem < m_callstack.size() ) { buffer* ret = Debug_Command( pFrame->GetDebuger(), "stack %s", m_callstack[nItem]->at(0).c_str() ); pFrame->local_vars_wnd_.Notify( ret ); } }
void StackWnd::Notify( buffer* callstack ) { Clear(); while( callstack ) { Params* p = new Params; PraseString( callstack->data, *p ); if( p->size() == 5 ) { m_callstack.push_back( p ); } callstack = callstack->next; } ResetItems( m_callstack.size() ); CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd(); buffer* ret = Debug_Command( pFrame->GetDebuger(), "stack 0" ); pFrame->local_vars_wnd_.Notify( ret ); }