2 * Copyright (c) 1996-2007 Barton P. Miller
4 * We provide the Paradyn Parallel Performance Tools (below
5 * described as "Paradyn") on an AS IS basis, and do not warrant its
6 * validity or performance. We reserve the right to update, modify,
7 * or discontinue this software at any time. We shall have no
8 * obligation to supply such updates or modifications or any other
9 * form of support to you.
11 * By your use of Paradyn, you understand and agree that we (or any
12 * other person or entity with proprietary rights in Paradyn) are
13 * under no obligation to provide either maintenance services,
14 * update services, notices of latent defects, or correction of
15 * defects for Paradyn.
17 * This library is free software; you can redistribute it and/or
18 * modify it under the terms of the GNU Lesser General Public
19 * License as published by the Free Software Foundation; either
20 * version 2.1 of the License, or (at your option) any later version.
22 * This library is distributed in the hope that it will be useful,
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
25 * Lesser General Public License for more details.
27 * You should have received a copy of the GNU Lesser General Public
28 * License along with this library; if not, write to the Free Software
29 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
32 #ifndef BLUEGENE_SWK_H
33 #define BLUEGENE_SWK_H
35 #include "external/bluegene/debugger_interface.h"
36 using namespace DebuggerInterface;
39 namespace Stackwalker {
41 class ProcDebugBG : public ProcDebug {
42 friend class ProcDebug;
44 virtual bool debug_create(const std::string &,
45 const std::vector<std::string> &);
46 virtual bool debug_attach(ThreadState *);
47 virtual bool debug_pause(ThreadState *);
48 virtual bool debug_continue(ThreadState *);
49 virtual bool debug_continue_with(ThreadState *, long sig);
50 virtual bool debug_version_msg();
51 virtual bool debug_handle_signal(DebugEvent *ev);
53 virtual bool debug_handle_event(DebugEvent ev);
54 virtual bool version_msg();
55 virtual bool debug_waitfor_version_msg();
58 ProcDebugBG(Dyninst::PID pid);
59 virtual ~ProcDebugBG();
61 virtual bool getRegValue(Dyninst::MachRegister reg, Dyninst::THR_ID thread, Dyninst::MachRegisterVal &val);
62 virtual bool readMem(void *dest, Dyninst::Address source, size_t size);
63 virtual bool getThreadIds(std::vector<Dyninst::THR_ID> &threads);
64 virtual bool getDefaultThread(Dyninst::THR_ID &default_tid);
65 virtual unsigned getAddressWidth();
69 unsigned mem_data_size;
76 unsigned char *read_cache;
77 Dyninst::Address read_cache_start;
78 unsigned read_cache_size;