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: Altering</title> 18 19<meta name="description" content="Debugging with GDB: Altering"> 20<meta name="keywords" content="Debugging with GDB: Altering"> 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="index.html#Top" rel="up" title="Top"> 29<link href="Assignment.html#Assignment" rel="next" title="Assignment"> 30<link href="Symbols.html#Symbols" rel="previous" title="Symbols"> 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="Altering"></a> 65<div class="header"> 66<p> 67Next: <a href="GDB-Files.html#GDB-Files" accesskey="n" rel="next">GDB Files</a>, Previous: <a href="Symbols.html#Symbols" accesskey="p" rel="previous">Symbols</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</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="Altering-Execution"></a> 71<h2 class="chapter">17 Altering Execution</h2> 72 73<p>Once you think you have found an error in your program, you might want to 74find out for certain whether correcting the apparent error would lead to 75correct results in the rest of the run. You can find the answer by 76experiment, using the <small>GDB</small> features for altering execution of the 77program. 78</p> 79<p>For example, you can store new values into variables or memory 80locations, give your program a signal, restart it at a different 81address, or even return prematurely from a function. 82</p> 83<table class="menu" border="0" cellspacing="0"> 84<tr><td align="left" valign="top">• <a href="Assignment.html#Assignment" accesskey="1">Assignment</a>:</td><td> </td><td align="left" valign="top">Assignment to variables 85</td></tr> 86<tr><td align="left" valign="top">• <a href="Jumping.html#Jumping" accesskey="2">Jumping</a>:</td><td> </td><td align="left" valign="top">Continuing at a different address 87</td></tr> 88<tr><td align="left" valign="top">• <a href="Signaling.html#Signaling" accesskey="3">Signaling</a>:</td><td> </td><td align="left" valign="top">Giving your program a signal 89</td></tr> 90<tr><td align="left" valign="top">• <a href="Returning.html#Returning" accesskey="4">Returning</a>:</td><td> </td><td align="left" valign="top">Returning from a function 91</td></tr> 92<tr><td align="left" valign="top">• <a href="Calling.html#Calling" accesskey="5">Calling</a>:</td><td> </td><td align="left" valign="top">Calling your program’s functions 93</td></tr> 94<tr><td align="left" valign="top">• <a href="Patching.html#Patching" accesskey="6">Patching</a>:</td><td> </td><td align="left" valign="top">Patching your program 95</td></tr> 96<tr><td align="left" valign="top">• <a href="Compiling-and-Injecting-Code.html#Compiling-and-Injecting-Code" accesskey="7">Compiling and Injecting Code</a>:</td><td> </td><td align="left" valign="top">Compiling and injecting code in <small>GDB</small> 97</td></tr> 98</table> 99 100 101 102 103</body> 104</html> 105