Sparc64.html 6.3 KB

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