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: Arithmetic In Guile</title> 18 19<meta name="description" content="Debugging with GDB: Arithmetic In Guile"> 20<meta name="keywords" content="Debugging with GDB: Arithmetic In Guile"> 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="Guile-API.html#Guile-API" rel="up" title="Guile API"> 29<link href="Types-In-Guile.html#Types-In-Guile" rel="next" title="Types In Guile"> 30<link href="Values-From-Inferior-In-Guile.html#Values-From-Inferior-In-Guile" rel="previous" title="Values From Inferior In Guile"> 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="Arithmetic-In-Guile"></a> 65<div class="header"> 66<p> 67Next: <a href="Types-In-Guile.html#Types-In-Guile" accesskey="n" rel="next">Types In Guile</a>, Previous: <a href="Values-From-Inferior-In-Guile.html#Values-From-Inferior-In-Guile" accesskey="p" rel="previous">Values From Inferior In Guile</a>, Up: <a href="Guile-API.html#Guile-API" accesskey="u" rel="up">Guile API</a> [<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="Arithmetic-In-Guile-1"></a> 71<h4 class="subsubsection">23.3.3.6 Arithmetic In Guile</h4> 72 73<p>The <code>(gdb)</code> module provides several functions for performing 74arithmetic on <code><gdb:value></code> objects. 75The arithmetic is performed as if it were done by the target, 76and therefore has target semantics which are not necessarily 77those of Scheme. For example operations work with a fixed precision, 78not the arbitrary precision of Scheme. 79</p> 80<p>Wherever a function takes an integer or pointer as an operand, 81<small>GDB</small> will convert appropriate Scheme values to perform 82the operation. 83</p> 84<dl> 85<dt><a name="index-value_002dadd"></a>Scheme Procedure: <strong>value-add</strong> <em>a b</em></dt> 86</dl> 87 88<dl> 89<dt><a name="index-value_002dsub"></a>Scheme Procedure: <strong>value-sub</strong> <em>a b</em></dt> 90</dl> 91 92<dl> 93<dt><a name="index-value_002dmul"></a>Scheme Procedure: <strong>value-mul</strong> <em>a b</em></dt> 94</dl> 95 96<dl> 97<dt><a name="index-value_002ddiv"></a>Scheme Procedure: <strong>value-div</strong> <em>a b</em></dt> 98</dl> 99 100<dl> 101<dt><a name="index-value_002drem"></a>Scheme Procedure: <strong>value-rem</strong> <em>a b</em></dt> 102</dl> 103 104<dl> 105<dt><a name="index-value_002dmod"></a>Scheme Procedure: <strong>value-mod</strong> <em>a b</em></dt> 106</dl> 107 108<dl> 109<dt><a name="index-value_002dpow"></a>Scheme Procedure: <strong>value-pow</strong> <em>a b</em></dt> 110</dl> 111 112<dl> 113<dt><a name="index-value_002dnot"></a>Scheme Procedure: <strong>value-not</strong> <em>a</em></dt> 114</dl> 115 116<dl> 117<dt><a name="index-value_002dneg"></a>Scheme Procedure: <strong>value-neg</strong> <em>a</em></dt> 118</dl> 119 120<dl> 121<dt><a name="index-value_002dpos"></a>Scheme Procedure: <strong>value-pos</strong> <em>a</em></dt> 122</dl> 123 124<dl> 125<dt><a name="index-value_002dabs"></a>Scheme Procedure: <strong>value-abs</strong> <em>a</em></dt> 126</dl> 127 128<dl> 129<dt><a name="index-value_002dlsh"></a>Scheme Procedure: <strong>value-lsh</strong> <em>a b</em></dt> 130</dl> 131 132<dl> 133<dt><a name="index-value_002drsh"></a>Scheme Procedure: <strong>value-rsh</strong> <em>a b</em></dt> 134</dl> 135 136<dl> 137<dt><a name="index-value_002dmin"></a>Scheme Procedure: <strong>value-min</strong> <em>a b</em></dt> 138</dl> 139 140<dl> 141<dt><a name="index-value_002dmax"></a>Scheme Procedure: <strong>value-max</strong> <em>a b</em></dt> 142</dl> 143 144<dl> 145<dt><a name="index-value_002dlognot"></a>Scheme Procedure: <strong>value-lognot</strong> <em>a</em></dt> 146</dl> 147 148<dl> 149<dt><a name="index-value_002dlogand"></a>Scheme Procedure: <strong>value-logand</strong> <em>a b</em></dt> 150</dl> 151 152<dl> 153<dt><a name="index-value_002dlogior"></a>Scheme Procedure: <strong>value-logior</strong> <em>a b</em></dt> 154</dl> 155 156<dl> 157<dt><a name="index-value_002dlogxor"></a>Scheme Procedure: <strong>value-logxor</strong> <em>a b</em></dt> 158</dl> 159 160<dl> 161<dt><a name="index-value_003d_003f"></a>Scheme Procedure: <strong>value=?</strong> <em>a b</em></dt> 162</dl> 163 164<dl> 165<dt><a name="index-value_003c_003f"></a>Scheme Procedure: <strong>value<?</strong> <em>a b</em></dt> 166</dl> 167 168<dl> 169<dt><a name="index-value_003c_003d_003f"></a>Scheme Procedure: <strong>value<=?</strong> <em>a b</em></dt> 170</dl> 171 172<dl> 173<dt><a name="index-value_003e_003f"></a>Scheme Procedure: <strong>value>?</strong> <em>a b</em></dt> 174</dl> 175 176<dl> 177<dt><a name="index-value_003e_003d_003f"></a>Scheme Procedure: <strong>value>=?</strong> <em>a b</em></dt> 178</dl> 179 180<p>Scheme does not provide a <code>not-equal</code> function, 181and thus Guile support in <small>GDB</small> does not either. 182</p> 183<hr> 184<div class="header"> 185<p> 186Next: <a href="Types-In-Guile.html#Types-In-Guile" accesskey="n" rel="next">Types In Guile</a>, Previous: <a href="Values-From-Inferior-In-Guile.html#Values-From-Inferior-In-Guile" accesskey="p" rel="previous">Values From Inferior In Guile</a>, Up: <a href="Guile-API.html#Guile-API" accesskey="u" rel="up">Guile API</a> [<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> 187</div> 188 189 190 191</body> 192</html> 193