🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gdb.bug
Article #1147

Gdbserver support of orig_r0 on ARM

#1147
From: Zhu Tom-a2289c
Date: Thu, 15 Mar 2007 17:26
104 lines
5598 bytes
This is a multi-part message in MIME format.

------_=_NextPart_001_01C76727.120EF0B6
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,
=20
I am meeting a problem that orig_r0 is overwritten by gdbserver(gdb 6.3)
on ARM.
It is because store_register/store_regs (in arm-linux-nat.c) set
register with ptrace(PTRACE_SETREGS ...)
=20
But as orig_r0 is not mapped by gdbserver, it will be overwritten.
This lost of orig_r0 will prevent the interrupted system call from being
restarted.
=20
I am new to gdbserver, so not sure whether this patch is correct,
=20
arm-linux-nat.c:
=20
-#define arm_num_regs 26
+#define arm_num_regs 27
=20
 static int arm_regmap[] =3D {
   0, 4, 8, 12, 16, 20, 24, 28,
   32, 36, 40, 44, 48, 52, 56, 60,
  -1, -1, -1, -1, -1, -1, -1, -1, -1,
-  64
+  64, 68
 };
=20
Thanks,
Tom

------_=_NextPart_001_01C76727.120EF0B6
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<META content=3D"MSHTML 6.00.2900.3020" name=3DGENERATOR></HEAD>
<BODY>
<DIV><FONT face=3DTahoma size=3D2><SPAN=20
class=3D921291017-15032007>Hi,</SPAN></FONT></DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN=20
class=3D921291017-15032007></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN class=3D921291017-15032007>I am =
meeting a=20
problem that orig_r0 is overwritten by gdbserver(gdb 6.3)&nbsp;on=20
ARM.</SPAN></FONT></DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN class=3D921291017-15032007>It is =
because=20
store_register/store_regs&nbsp;(in arm-linux-nat.c)&nbsp;set register =
with=20
ptrace(PTRACE_SETREGS ...)</SPAN></FONT></DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN=20
class=3D921291017-15032007></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN class=3D921291017-15032007>But =
as orig_r0 is=20
not&nbsp;mapped by gdbserver, it will be =
overwritten.</SPAN></FONT></DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN class=3D921291017-15032007>This =
lost of=20
orig_r0 will prevent the interrupted system call from being=20
restarted.</SPAN></FONT></DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN=20
class=3D921291017-15032007></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN class=3D921291017-15032007>I am =
new to=20
gdbserver, so not sure&nbsp;whether this patch is =
correct,</SPAN></FONT></DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN =
class=3D921291017-15032007></SPAN></FONT><FONT=20
face=3DTahoma size=3D2><SPAN =
class=3D921291017-15032007></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN=20
class=3D921291017-15032007>arm-linux-nat.c:</SPAN></FONT></DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN=20
class=3D921291017-15032007></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN =
class=3D921291017-15032007>-#define=20
arm_num_regs 26<BR>+#define arm_num_regs 27<BR>&nbsp;<BR>&nbsp;static =
int=20
arm_regmap[] =3D {<BR>&nbsp;&nbsp; 0, 4, 8, 12, 16, 20, 24, =
28,<BR>&nbsp;&nbsp;=20
32, 36, 40, 44, 48, 52, 56, 60,<BR>&nbsp; -1, -1, -1, -1, -1, -1, -1, =
-1,=20
-1,<BR>-&nbsp; 64</SPAN></FONT></DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN =
class=3D921291017-15032007>+&nbsp; 64,=20
68<BR>&nbsp;};</SPAN></FONT></DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN=20
class=3D921291017-15032007></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN=20
class=3D921291017-15032007>Thanks,</SPAN></FONT></DIV>
<DIV><FONT face=3DTahoma size=3D2><SPAN=20
class=3D921291017-15032007>Tom</SPAN></FONT></DIV></BODY></HTML>

------_=_NextPart_001_01C76727.120EF0B6--
Technical Details
Message-ID: <mailman.965.1173979666.7795.bug-gdb@gnu.org>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!newshub.sdsu.edu!headwall.stanford.edu!shelby.stanford.edu!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: f5053,e3e3548c1563dde2,start
X-Google-Attributes: gidf5053,public
X-Google-Language: ENGLISH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!newshub.sdsu.edu!headwall.stanford.edu!shelby.stanford.edu!not-for-mail
From: "Zhu Tom-a2289c" <ling.zhu@motorola.com>
Newsgroups: gnu.gdb.bug
Subject: Gdbserver support of orig_r0 on ARM
Date: Fri, 16 Mar 2007 01:26:21 +0800
Lines: 106
Approved: bug-gdb@gnu.org
Message-ID: <mailman.965.1173979666.7795.bug-gdb@gnu.org>
NNTP-Posting-Host: lists.gnu.org
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="----_=_NextPart_001_01C76727.120EF0B6"
X-Trace: news.Stanford.EDU 1173979603 12724 199.232.76.165 (15 Mar 2007 17:26:43 GMT)
X-Complaints-To: news@news.stanford.edu
To: <bug-gdb@gnu.org>
Envelope-to: bug-gdb@gnu.org
X-VirusChecked: Checked
X-Env-Sender: ling.zhu@motorola.com
X-Msg-Ref: server-4.tower-153.messagelabs.com!1173979597!1842384!1
X-StarScan-Version: 5.5.10.7.1; banners=-,-,-
X-Originating-IP: [129.188.136.8]
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
Thread-Topic: Gdbserver support of orig_r0 on ARM
Thread-Index: AcdnJwyUQHfkCH+oQUGzHIc/Lt/Jiw==
X-detected-kernel: Linux 2.4-2.6
X-BeenThere: bug-gdb@gnu.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "Bug reports for GDB, the GNU debugger" <bug-gdb.gnu.org>
List-Unsubscribe: <http://lists.gnu.org/mailman/listinfo/bug-gdb>,
 <mailto:bug-gdb-request@gnu.org?subject=unsubscribe>
List-Archive: <http://lists.gnu.org/pipermail/bug-gdb>
List-Post: <mailto:bug-gdb@gnu.org>
List-Help: <mailto:bug-gdb-request@gnu.org?subject=help>
List-Subscribe: <http://lists.gnu.org/mailman/listinfo/bug-gdb>,
 <mailto:bug-gdb-request@gnu.org?subject=subscribe>