void SetProgState( unsigned run_conditions ) { ReadDbgRegs(); if( run_conditions & COND_THREAD_EXTRA ) { _SwitchOn( SW_THREAD_EXTRA_CHANGED ); } if( run_conditions & COND_THREAD ) { DbgRegs->tid = RemoteSetThread( 0 ); CheckForNewThreads( TRUE ); } if( run_conditions & COND_ALIASING ) CheckSegAlias(); }
bool AddLibInfo( bool already_stopping, bool *force_stop ) { unsigned long module; bool added; bool deleted; image_entry *image; added = false; deleted = false; module = 0; while( (module = RemoteGetLibName( module, TxtBuff, TXT_LEN )) != 0 ) { if( TxtBuff[0] == NULLCHAR ) { deleted = true; for( image = DbgImageList; image != NULL; image = image->link ) { if( image->system_handle == module ) { DUIImageLoaded( image, false, already_stopping, force_stop ); UnLoadImgSymInfo( image, false ); break; } } } else { added = true; image = CreateImage( TxtBuff, NULL ); if( image != NULL ) { image->system_handle = module; if( ReLoadImgSymInfo( image ) ) { InitImageInfo( image ); } DUIImageLoaded( image, true, already_stopping, force_stop ); } } } CheckSegAlias(); if( deleted ) { HookNotify( true, HOOK_DLL_END ); } if( added ) { HookNotify( true, HOOK_DLL_START ); } return( added ); }