1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<!-- Copyright (C) 1988-2021 Free Software Foundation, Inc.
4
5Permission is granted to copy, distribute and/or modify this document
6under the terms of the GNU Free Documentation License, Version 1.3 or
7any later version published by the Free Software Foundation; with the
8Invariant Sections being "Free Software" and "Free Software Needs
9Free Documentation", with the Front-Cover Texts being "A GNU Manual,"
10and with the Back-Cover Texts as in (a) below.
11
12(a) The FSF's Back-Cover Text is: "You are free to copy and modify
13this GNU Manual.  Buying copies from GNU Press supports the FSF in
14developing GNU and promoting software freedom." -->
15<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
16<head>
17<title>Debugging with GDB: Sparc64</title>
18
19<meta name="description" content="Debugging with GDB: Sparc64">
20<meta name="keywords" content="Debugging with GDB: Sparc64">
21<meta name="resource-type" content="document">
22<meta name="distribution" content="global">
23<meta name="Generator" content="makeinfo">
24<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
25<link href="index.html#Top" rel="start" title="Top">
26<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
27<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
28<link href="Architectures.html#Architectures" rel="up" title="Architectures">
29<link href="S12Z.html#S12Z" rel="next" title="S12Z">
30<link href="Nios-II.html#Nios-II" rel="previous" title="Nios II">
31<style type="text/css">
32<!--
33a.summary-letter {text-decoration: none}
34blockquote.smallquotation {font-size: smaller}
35div.display {margin-left: 3.2em}
36div.example {margin-left: 3.2em}
37div.indentedblock {margin-left: 3.2em}
38div.lisp {margin-left: 3.2em}
39div.smalldisplay {margin-left: 3.2em}
40div.smallexample {margin-left: 3.2em}
41div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
42div.smalllisp {margin-left: 3.2em}
43kbd {font-style:oblique}
44pre.display {font-family: inherit}
45pre.format {font-family: inherit}
46pre.menu-comment {font-family: serif}
47pre.menu-preformatted {font-family: serif}
48pre.smalldisplay {font-family: inherit; font-size: smaller}
49pre.smallexample {font-size: smaller}
50pre.smallformat {font-family: inherit; font-size: smaller}
51pre.smalllisp {font-size: smaller}
52span.nocodebreak {white-space:nowrap}
53span.nolinebreak {white-space:nowrap}
54span.roman {font-family:serif; font-weight:normal}
55span.sansserif {font-family:sans-serif; font-weight:normal}
56ul.no-bullet {list-style: none}
57-->
58</style>
59
60
61</head>
62
63<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
64<a name="Sparc64"></a>
65<div class="header">
66<p>
67Next: <a href="S12Z.html#S12Z" accesskey="n" rel="next">S12Z</a>, Previous: <a href="Nios-II.html#Nios-II" accesskey="p" rel="previous">Nios II</a>, Up: <a href="Architectures.html#Architectures" accesskey="u" rel="up">Architectures</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
68</div>
69<hr>
70<a name="Sparc64-1"></a>
71<h4 class="subsection">21.4.8 Sparc64</h4>
72<a name="index-Sparc64-support"></a>
73<a name="index-Application-Data-Integrity"></a>
74<a name="ADI-Support"></a>
75<h4 class="subsubsection">21.4.8.1 ADI Support</h4>
76
77<p>The M7 processor supports an Application Data Integrity (ADI) feature that
78detects invalid data accesses.  When software allocates memory and enables
79ADI on the allocated memory, it chooses a 4-bit version number, sets the
80version in the upper 4 bits of the 64-bit pointer to that data, and stores
81the 4-bit version in every cacheline of that data.  Hardware saves the latter
82in spare bits in the cache and memory hierarchy.  On each load and store,
83the processor compares the upper 4 VA (virtual address) bits to the
84cacheline&rsquo;s version.  If there is a mismatch, the processor generates a
85version mismatch trap which can be either precise or disrupting.  The trap
86is an error condition which the kernel delivers to the process as a SIGSEGV
87signal.
88</p>
89<p>Note that only 64-bit applications can use ADI and need to be built with
90ADI-enabled.
91</p>
92<p>Values of the ADI version tags, which are in granularity of a
93cacheline (64 bytes), can be viewed or modified.
94</p>
95
96<dl compact="compact">
97<dd><a name="index-adi-examine"></a>
98</dd>
99<dt><code>adi (examine | x) [ / <var>n</var> ] <var>addr</var></code></dt>
100<dd>
101<p>The <code>adi examine</code> command displays the value of one ADI version tag per
102cacheline.
103</p>
104<p><var>n</var> is a decimal integer specifying the number in bytes; the default
105is 1.  It specifies how much ADI version information, at the ratio of 1:ADI
106block size, to display.
107</p>
108<p><var>addr</var> is the address in user address space where you want <small>GDB</small>
109to begin displaying the ADI version tags.
110</p>
111<p>Below is an example of displaying ADI versions of variable &quot;shmaddr&quot;.
112</p>
113<div class="smallexample">
114<pre class="smallexample">(gdb) adi x/100 shmaddr
115   0xfff800010002c000:     0 0
116</pre></div>
117
118<a name="index-adi-assign"></a>
119</dd>
120<dt><code>adi (assign | a) [ / <var>n</var> ] <var>addr</var> = <var>tag</var></code></dt>
121<dd>
122<p>The <code>adi assign</code> command is used to assign new ADI version tag
123to an address.
124</p>
125<p><var>n</var> is a decimal integer specifying the number in bytes;
126the default is 1.  It specifies how much ADI version information, at the
127ratio of 1:ADI block size, to modify.
128</p>
129<p><var>addr</var> is the address in user address space where you want <small>GDB</small>
130to begin modifying the ADI version tags.
131</p>
132<p><var>tag</var> is the new ADI version tag.
133</p>
134<p>For example, do the following to modify then verify ADI versions of
135variable &quot;shmaddr&quot;:
136</p>
137<div class="smallexample">
138<pre class="smallexample">(gdb) adi a/100 shmaddr = 7
139(gdb) adi x/100 shmaddr
140   0xfff800010002c000:     7 7
141</pre></div>
142
143</dd>
144</dl>
145
146<hr>
147<div class="header">
148<p>
149Next: <a href="S12Z.html#S12Z" accesskey="n" rel="next">S12Z</a>, Previous: <a href="Nios-II.html#Nios-II" accesskey="p" rel="previous">Nios II</a>, Up: <a href="Architectures.html#Architectures" accesskey="u" rel="up">Architectures</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
150</div>
151
152
153
154</body>
155</html>
156