You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

155 lines
6.3 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1988-2019 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "Free Software" and "Free Software Needs
Free Documentation", with the Front-Cover Texts being "A GNU Manual,"
and with the Back-Cover Texts as in (a) below.
(a) The FSF's Back-Cover Text is: "You are free to copy and modify
this GNU Manual. Buying copies from GNU Press supports the FSF in
developing GNU and promoting software freedom." -->
<!-- Created by GNU Texinfo 6.4, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Sparc64 (Debugging with GDB)</title>
<meta name="description" content="Sparc64 (Debugging with GDB)">
<meta name="keywords" content="Sparc64 (Debugging with GDB)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Architectures.html#Architectures" rel="up" title="Architectures">
<link href="S12Z.html#S12Z" rel="next" title="S12Z">
<link href="Nios-II.html#Nios-II" rel="prev" title="Nios II">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<a name="Sparc64"></a>
<div class="header">
<p>
Next: <a href="S12Z.html#S12Z" accesskey="n" rel="next">S12Z</a>, Previous: <a href="Nios-II.html#Nios-II" accesskey="p" rel="prev">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>
</div>
<hr>
<a name="Sparc64-1"></a>
<h4 class="subsection">21.4.9 Sparc64</h4>
<a name="index-Sparc64-support"></a>
<a name="index-Application-Data-Integrity"></a>
<a name="ADI-Support"></a>
<h4 class="subsubsection">21.4.9.1 ADI Support</h4>
<p>The M7 processor supports an Application Data Integrity (ADI) feature that
detects invalid data accesses. When software allocates memory and enables
ADI on the allocated memory, it chooses a 4-bit version number, sets the
version in the upper 4 bits of the 64-bit pointer to that data, and stores
the 4-bit version in every cacheline of that data. Hardware saves the latter
in spare bits in the cache and memory hierarchy. On each load and store,
the processor compares the upper 4 VA (virtual address) bits to the
cacheline&rsquo;s version. If there is a mismatch, the processor generates a
version mismatch trap which can be either precise or disrupting. The trap
is an error condition which the kernel delivers to the process as a SIGSEGV
signal.
</p>
<p>Note that only 64-bit applications can use ADI and need to be built with
ADI-enabled.
</p>
<p>Values of the ADI version tags, which are in granularity of a
cacheline (64 bytes), can be viewed or modified.
</p>
<dl compact="compact">
<dd><a name="index-adi-examine"></a>
</dd>
<dt><code>adi (examine | x) [ / <var>n</var> ] <var>addr</var></code></dt>
<dd>
<p>The <code>adi examine</code> command displays the value of one ADI version tag per
cacheline.
</p>
<p><var>n</var> is a decimal integer specifying the number in bytes; the default
is 1. It specifies how much ADI version information, at the ratio of 1:ADI
block size, to display.
</p>
<p><var>addr</var> is the address in user address space where you want <small>GDB</small>
to begin displaying the ADI version tags.
</p>
<p>Below is an example of displaying ADI versions of variable &quot;shmaddr&quot;.
</p>
<div class="smallexample">
<pre class="smallexample">(gdb) adi x/100 shmaddr
0xfff800010002c000: 0 0
</pre></div>
<a name="index-adi-assign"></a>
</dd>
<dt><code>adi (assign | a) [ / <var>n</var> ] <var>addr</var> = <var>tag</var></code></dt>
<dd>
<p>The <code>adi assign</code> command is used to assign new ADI version tag
to an address.
</p>
<p><var>n</var> is a decimal integer specifying the number in bytes;
the default is 1. It specifies how much ADI version information, at the
ratio of 1:ADI block size, to modify.
</p>
<p><var>addr</var> is the address in user address space where you want <small>GDB</small>
to begin modifying the ADI version tags.
</p>
<p><var>tag</var> is the new ADI version tag.
</p>
<p>For example, do the following to modify then verify ADI versions of
variable &quot;shmaddr&quot;:
</p>
<div class="smallexample">
<pre class="smallexample">(gdb) adi a/100 shmaddr = 7
(gdb) adi x/100 shmaddr
0xfff800010002c000: 7 7
</pre></div>
</dd>
</dl>
<hr>
<div class="header">
<p>
Next: <a href="S12Z.html#S12Z" accesskey="n" rel="next">S12Z</a>, Previous: <a href="Nios-II.html#Nios-II" accesskey="p" rel="prev">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>
</div>
</body>
</html>