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