remote_gdb.cc revision 5569
14159Sgblack@eecs.umich.edu/*
24159Sgblack@eecs.umich.edu * Copyright (c) 2007 The Hewlett-Packard Development Company
34159Sgblack@eecs.umich.edu * All rights reserved.
44159Sgblack@eecs.umich.edu *
54159Sgblack@eecs.umich.edu * Redistribution and use of this software in source and binary forms,
64159Sgblack@eecs.umich.edu * with or without modification, are permitted provided that the
74159Sgblack@eecs.umich.edu * following conditions are met:
84159Sgblack@eecs.umich.edu *
94159Sgblack@eecs.umich.edu * The software must be used only for Non-Commercial Use which means any
104159Sgblack@eecs.umich.edu * use which is NOT directed to receiving any direct monetary
114159Sgblack@eecs.umich.edu * compensation for, or commercial advantage from such use.  Illustrative
124159Sgblack@eecs.umich.edu * examples of non-commercial use are academic research, personal study,
134159Sgblack@eecs.umich.edu * teaching, education and corporate research & development.
144159Sgblack@eecs.umich.edu * Illustrative examples of commercial use are distributing products for
154159Sgblack@eecs.umich.edu * commercial advantage and providing services using the software for
164159Sgblack@eecs.umich.edu * commercial advantage.
174159Sgblack@eecs.umich.edu *
184159Sgblack@eecs.umich.edu * If you wish to use this software or functionality therein that may be
194159Sgblack@eecs.umich.edu * covered by patents for commercial use, please contact:
204159Sgblack@eecs.umich.edu *     Director of Intellectual Property Licensing
214159Sgblack@eecs.umich.edu *     Office of Strategy and Technology
224159Sgblack@eecs.umich.edu *     Hewlett-Packard Company
234159Sgblack@eecs.umich.edu *     1501 Page Mill Road
244159Sgblack@eecs.umich.edu *     Palo Alto, California  94304
254159Sgblack@eecs.umich.edu *
264159Sgblack@eecs.umich.edu * Redistributions of source code must retain the above copyright notice,
274159Sgblack@eecs.umich.edu * this list of conditions and the following disclaimer.  Redistributions
284159Sgblack@eecs.umich.edu * in binary form must reproduce the above copyright notice, this list of
294159Sgblack@eecs.umich.edu * conditions and the following disclaimer in the documentation and/or
304159Sgblack@eecs.umich.edu * other materials provided with the distribution.  Neither the name of
314159Sgblack@eecs.umich.edu * the COPYRIGHT HOLDER(s), HEWLETT-PACKARD COMPANY, nor the names of its
324159Sgblack@eecs.umich.edu * contributors may be used to endorse or promote products derived from
334159Sgblack@eecs.umich.edu * this software without specific prior written permission.  No right of
344159Sgblack@eecs.umich.edu * sublicense is granted herewith.  Derivatives of the software and
354159Sgblack@eecs.umich.edu * output created using the software may be prepared, but only for
364159Sgblack@eecs.umich.edu * Non-Commercial Uses.  Derivatives of the software may be shared with
374159Sgblack@eecs.umich.edu * others provided: (i) the others agree to abide by the list of
384159Sgblack@eecs.umich.edu * conditions herein which includes the Non-Commercial Use restrictions;
394159Sgblack@eecs.umich.edu * and (ii) such Derivatives of the software include the above copyright
404159Sgblack@eecs.umich.edu * notice to acknowledge the contribution from this software where
414159Sgblack@eecs.umich.edu * applicable, this list of conditions and the disclaimer below.
424159Sgblack@eecs.umich.edu *
434159Sgblack@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
444159Sgblack@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
454159Sgblack@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
464159Sgblack@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
474159Sgblack@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
484159Sgblack@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
494159Sgblack@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
504159Sgblack@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
514159Sgblack@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
524159Sgblack@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
534159Sgblack@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
544159Sgblack@eecs.umich.edu *
554159Sgblack@eecs.umich.edu * Authors: Gabe Black
564159Sgblack@eecs.umich.edu */
574159Sgblack@eecs.umich.edu
584159Sgblack@eecs.umich.edu/*
594159Sgblack@eecs.umich.edu * Copyright (c) 1990, 1993
605543Ssaidi@eecs.umich.edu *      The Regents of the University of California.  All rights reserved.
614159Sgblack@eecs.umich.edu *
624159Sgblack@eecs.umich.edu * This software was developed by the Computer Systems Engineering group
634159Sgblack@eecs.umich.edu * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
644159Sgblack@eecs.umich.edu * contributed to Berkeley.
654159Sgblack@eecs.umich.edu *
664159Sgblack@eecs.umich.edu * All advertising materials mentioning features or use of this software
674159Sgblack@eecs.umich.edu * must display the following acknowledgement:
685543Ssaidi@eecs.umich.edu *      This product includes software developed by the University of
695543Ssaidi@eecs.umich.edu *      California, Lawrence Berkeley Laboratories.
704159Sgblack@eecs.umich.edu *
714159Sgblack@eecs.umich.edu * Redistribution and use in source and binary forms, with or without
724159Sgblack@eecs.umich.edu * modification, are permitted provided that the following conditions
734159Sgblack@eecs.umich.edu * are met:
744159Sgblack@eecs.umich.edu * 1. Redistributions of source code must retain the above copyright
754159Sgblack@eecs.umich.edu *    notice, this list of conditions and the following disclaimer.
764159Sgblack@eecs.umich.edu * 2. Redistributions in binary form must reproduce the above copyright
774159Sgblack@eecs.umich.edu *    notice, this list of conditions and the following disclaimer in the
784159Sgblack@eecs.umich.edu *    documentation and/or other materials provided with the distribution.
794159Sgblack@eecs.umich.edu * 3. All advertising materials mentioning features or use of this software
804159Sgblack@eecs.umich.edu *    must display the following acknowledgement:
815543Ssaidi@eecs.umich.edu *      This product includes software developed by the University of
825543Ssaidi@eecs.umich.edu *      California, Berkeley and its contributors.
834159Sgblack@eecs.umich.edu * 4. Neither the name of the University nor the names of its contributors
844159Sgblack@eecs.umich.edu *    may be used to endorse or promote products derived from this software
854159Sgblack@eecs.umich.edu *    without specific prior written permission.
864159Sgblack@eecs.umich.edu *
874159Sgblack@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
884159Sgblack@eecs.umich.edu * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
894159Sgblack@eecs.umich.edu * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
904159Sgblack@eecs.umich.edu * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
914159Sgblack@eecs.umich.edu * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
924159Sgblack@eecs.umich.edu * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
934159Sgblack@eecs.umich.edu * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
944159Sgblack@eecs.umich.edu * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
954159Sgblack@eecs.umich.edu * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
964159Sgblack@eecs.umich.edu * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
974159Sgblack@eecs.umich.edu * SUCH DAMAGE.
984159Sgblack@eecs.umich.edu *
995543Ssaidi@eecs.umich.edu *      @(#)kgdb_stub.c 8.4 (Berkeley) 1/12/94
1004159Sgblack@eecs.umich.edu */
1014159Sgblack@eecs.umich.edu
1024159Sgblack@eecs.umich.edu/*-
1034159Sgblack@eecs.umich.edu * Copyright (c) 2001 The NetBSD Foundation, Inc.
1044159Sgblack@eecs.umich.edu * All rights reserved.
1054159Sgblack@eecs.umich.edu *
1064159Sgblack@eecs.umich.edu * This code is derived from software contributed to The NetBSD Foundation
1074159Sgblack@eecs.umich.edu * by Jason R. Thorpe.
1084159Sgblack@eecs.umich.edu *
1094159Sgblack@eecs.umich.edu * Redistribution and use in source and binary forms, with or without
1104159Sgblack@eecs.umich.edu * modification, are permitted provided that the following conditions
1114159Sgblack@eecs.umich.edu * are met:
1124159Sgblack@eecs.umich.edu * 1. Redistributions of source code must retain the above copyright
1134159Sgblack@eecs.umich.edu *    notice, this list of conditions and the following disclaimer.
1144159Sgblack@eecs.umich.edu * 2. Redistributions in binary form must reproduce the above copyright
1154159Sgblack@eecs.umich.edu *    notice, this list of conditions and the following disclaimer in the
1164159Sgblack@eecs.umich.edu *    documentation and/or other materials provided with the distribution.
1174159Sgblack@eecs.umich.edu * 3. All advertising materials mentioning features or use of this software
1184159Sgblack@eecs.umich.edu *    must display the following acknowledgement:
1195543Ssaidi@eecs.umich.edu *      This product includes software developed by the NetBSD
1205543Ssaidi@eecs.umich.edu *      Foundation, Inc. and its contributors.
1214159Sgblack@eecs.umich.edu * 4. Neither the name of The NetBSD Foundation nor the names of its
1224159Sgblack@eecs.umich.edu *    contributors may be used to endorse or promote products derived
1234159Sgblack@eecs.umich.edu *    from this software without specific prior written permission.
1244159Sgblack@eecs.umich.edu *
1254159Sgblack@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
1264159Sgblack@eecs.umich.edu * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
1274159Sgblack@eecs.umich.edu * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1284159Sgblack@eecs.umich.edu * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
1294159Sgblack@eecs.umich.edu * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1304159Sgblack@eecs.umich.edu * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1314159Sgblack@eecs.umich.edu * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1324159Sgblack@eecs.umich.edu * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1334159Sgblack@eecs.umich.edu * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1344159Sgblack@eecs.umich.edu * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1354159Sgblack@eecs.umich.edu * POSSIBILITY OF SUCH DAMAGE.
1364159Sgblack@eecs.umich.edu */
1374159Sgblack@eecs.umich.edu
1384159Sgblack@eecs.umich.edu/*
1394159Sgblack@eecs.umich.edu * $NetBSD: kgdb_stub.c,v 1.8 2001/07/07 22:58:00 wdk Exp $
1404159Sgblack@eecs.umich.edu *
1414159Sgblack@eecs.umich.edu * Taken from NetBSD
1424159Sgblack@eecs.umich.edu *
1434159Sgblack@eecs.umich.edu * "Stub" to allow remote cpu to debug over a serial line using gdb.
1444159Sgblack@eecs.umich.edu */
1454159Sgblack@eecs.umich.edu
1464159Sgblack@eecs.umich.edu#include <sys/signal.h>
1474159Sgblack@eecs.umich.edu
1484159Sgblack@eecs.umich.edu#include <string>
1494159Sgblack@eecs.umich.edu#include <unistd.h>
1504159Sgblack@eecs.umich.edu
1514159Sgblack@eecs.umich.edu#include "arch/vtophys.hh"
1524159Sgblack@eecs.umich.edu#include "arch/x86/remote_gdb.hh"
1534159Sgblack@eecs.umich.edu#include "base/remote_gdb.hh"
1544159Sgblack@eecs.umich.edu#include "base/socket.hh"
1554159Sgblack@eecs.umich.edu#include "base/trace.hh"
1564159Sgblack@eecs.umich.edu#include "config/full_system.hh"
1574159Sgblack@eecs.umich.edu#include "cpu/thread_context.hh"
1584159Sgblack@eecs.umich.edu
1594159Sgblack@eecs.umich.eduusing namespace std;
1605567Snate@binkert.orgusing namespace X86ISA;
1614159Sgblack@eecs.umich.edu
1624159Sgblack@eecs.umich.eduRemoteGDB::RemoteGDB(System *_system, ThreadContext *c)
1634159Sgblack@eecs.umich.edu    : BaseRemoteGDB(_system, c, NumGDBRegs)
1644159Sgblack@eecs.umich.edu{}
1654159Sgblack@eecs.umich.edu
1664159Sgblack@eecs.umich.edubool RemoteGDB::acc(Addr va, size_t len)
1674159Sgblack@eecs.umich.edu{
1684159Sgblack@eecs.umich.edu    panic("Remote gdb acc not implemented in x86!\n");
1694159Sgblack@eecs.umich.edu}
1704159Sgblack@eecs.umich.edu
1714159Sgblack@eecs.umich.eduvoid RemoteGDB::getregs()
1724159Sgblack@eecs.umich.edu{
1734159Sgblack@eecs.umich.edu    panic("Remote gdb getregs not implemented in x86!\n");
1744159Sgblack@eecs.umich.edu}
1754159Sgblack@eecs.umich.edu
1764159Sgblack@eecs.umich.eduvoid RemoteGDB::setregs()
1774159Sgblack@eecs.umich.edu{
1784159Sgblack@eecs.umich.edu    panic("Remote gdb setregs not implemented in x86!\n");
1794159Sgblack@eecs.umich.edu}
1804159Sgblack@eecs.umich.edu
1814159Sgblack@eecs.umich.eduvoid RemoteGDB::clearSingleStep()
1824159Sgblack@eecs.umich.edu{
1834159Sgblack@eecs.umich.edu    panic("Remote gdb clearSingleStep not implemented in x86!\n");
1844159Sgblack@eecs.umich.edu}
1854159Sgblack@eecs.umich.edu
1864159Sgblack@eecs.umich.eduvoid RemoteGDB::setSingleStep()
1874159Sgblack@eecs.umich.edu{
1884159Sgblack@eecs.umich.edu    panic("Remoge gdb setSingleStep not implemented in x86!\n");
1894159Sgblack@eecs.umich.edu}
190