Home | History | Annotate | Line # | Download | only in gdb
progspace-and-thread.h revision 1.1.1.1
      1  1.1  christos /* Copyright (C) 2009-2019 Free Software Foundation, Inc.
      2  1.1  christos 
      3  1.1  christos    This file is part of GDB.
      4  1.1  christos 
      5  1.1  christos    This program is free software; you can redistribute it and/or modify
      6  1.1  christos    it under the terms of the GNU General Public License as published by
      7  1.1  christos    the Free Software Foundation; either version 3 of the License, or
      8  1.1  christos    (at your option) any later version.
      9  1.1  christos 
     10  1.1  christos    This program is distributed in the hope that it will be useful,
     11  1.1  christos    but WITHOUT ANY WARRANTY; without even the implied warranty of
     12  1.1  christos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13  1.1  christos    GNU General Public License for more details.
     14  1.1  christos 
     15  1.1  christos    You should have received a copy of the GNU General Public License
     16  1.1  christos    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     17  1.1  christos 
     18  1.1  christos 
     19  1.1  christos #ifndef PROGSPACE_AND_THREAD_H
     20  1.1  christos #define PROGSPACE_AND_THREAD_H
     21  1.1  christos 
     22  1.1  christos #include "progspace.h"
     23  1.1  christos #include "gdbthread.h"
     24  1.1  christos 
     25  1.1  christos /* Save/restore the current program space, thread, inferior and frame.
     26  1.1  christos    Use this when you need to call
     27  1.1  christos    switch_to_program_space_and_thread.  */
     28  1.1  christos 
     29  1.1  christos class scoped_restore_current_pspace_and_thread
     30  1.1  christos {
     31  1.1  christos   scoped_restore_current_program_space m_restore_pspace;
     32  1.1  christos   scoped_restore_current_thread m_restore_thread;
     33  1.1  christos };
     34  1.1  christos 
     35  1.1  christos /* Switches full context to program space PSPACE.  Switches to the
     36  1.1  christos    first thread found bound to PSPACE, giving preference to the
     37  1.1  christos    current thread, if there's one and it isn't executing.  */
     38  1.1  christos void switch_to_program_space_and_thread (program_space *pspace);
     39  1.1  christos 
     40  1.1  christos #endif
     41