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: Server</title> 18 19<meta name="description" content="Debugging with GDB: Server"> 20<meta name="keywords" content="Debugging with GDB: Server"> 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="Remote-Debugging.html#Remote-Debugging" rel="up" title="Remote Debugging"> 29<link href="Remote-Configuration.html#Remote-Configuration" rel="next" title="Remote Configuration"> 30<link href="File-Transfer.html#File-Transfer" rel="previous" title="File Transfer"> 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="Server"></a> 65<div class="header"> 66<p> 67Next: <a href="Remote-Configuration.html#Remote-Configuration" accesskey="n" rel="next">Remote Configuration</a>, Previous: <a href="File-Transfer.html#File-Transfer" accesskey="p" rel="previous">File Transfer</a>, Up: <a href="Remote-Debugging.html#Remote-Debugging" accesskey="u" rel="up">Remote Debugging</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="Using-the-gdbserver-Program"></a> 71<h3 class="section">20.3 Using the <code>gdbserver</code> Program</h3> 72 73<a name="index-gdbserver"></a> 74<a name="index-remote-connection-without-stubs"></a> 75<p><code>gdbserver</code> is a control program for Unix-like systems, which 76allows you to connect your program with a remote <small>GDB</small> via 77<code>target remote</code> or <code>target extended-remote</code>—but without 78linking in the usual debugging stub. 79</p> 80<p><code>gdbserver</code> is not a complete replacement for the debugging stubs, 81because it requires essentially the same operating-system facilities 82that <small>GDB</small> itself does. In fact, a system that can run 83<code>gdbserver</code> to connect to a remote <small>GDB</small> could also run 84<small>GDB</small> locally! <code>gdbserver</code> is sometimes useful nevertheless, 85because it is a much smaller program than <small>GDB</small> itself. It is 86also easier to port than all of <small>GDB</small>, so you may be able to get 87started more quickly on a new system by using <code>gdbserver</code>. 88Finally, if you develop code for real-time systems, you may find that 89the tradeoffs involved in real-time operation make it more convenient to 90do as much development work as possible on another system, for example 91by cross-compiling. You can use <code>gdbserver</code> to make a similar 92choice for debugging. 93</p> 94<p><small>GDB</small> and <code>gdbserver</code> communicate via either a serial line 95or a TCP connection, using the standard <small>GDB</small> remote serial 96protocol. 97</p> 98<blockquote> 99<p><em>Warning:</em> <code>gdbserver</code> does not have any built-in security. 100Do not run <code>gdbserver</code> connected to any public network; a 101<small>GDB</small> connection to <code>gdbserver</code> provides access to the 102target system with the same privileges as the user running 103<code>gdbserver</code>. 104</p></blockquote> 105 106<a name="Running-gdbserver"></a><a name="Running-gdbserver-1"></a> 107<h4 class="subsection">20.3.1 Running <code>gdbserver</code></h4> 108<a name="index-arguments_002c-to-gdbserver"></a> 109<a name="index-gdbserver_002c-command_002dline-arguments"></a> 110 111<p>Run <code>gdbserver</code> on the target system. You need a copy of the 112program you want to debug, including any libraries it requires. 113<code>gdbserver</code> does not need your program’s symbol table, so you can 114strip the program if necessary to save space. <small>GDB</small> on the host 115system does all the symbol handling. 116</p> 117<p>To use the server, you must tell it how to communicate with <small>GDB</small>; 118the name of your program; and the arguments for your program. The usual 119syntax is: 120</p> 121<div class="smallexample"> 122<pre class="smallexample">target> gdbserver <var>comm</var> <var>program</var> [ <var>args</var> … ] 123</pre></div> 124 125<p><var>comm</var> is either a device name (to use a serial line), or a TCP 126hostname and portnumber, or <code>-</code> or <code>stdio</code> to use 127stdin/stdout of <code>gdbserver</code>. 128For example, to debug Emacs with the argument 129‘<samp>foo.txt</samp>’ and communicate with <small>GDB</small> over the serial port 130<samp>/dev/com1</samp>: 131</p> 132<div class="smallexample"> 133<pre class="smallexample">target> gdbserver /dev/com1 emacs foo.txt 134</pre></div> 135 136<p><code>gdbserver</code> waits passively for the host <small>GDB</small> to communicate 137with it. 138</p> 139<p>To use a TCP connection instead of a serial line: 140</p> 141<div class="smallexample"> 142<pre class="smallexample">target> gdbserver host:2345 emacs foo.txt 143</pre></div> 144 145<p>The only difference from the previous example is the first argument, 146specifying that you are communicating with the host <small>GDB</small> via 147TCP. The ‘<samp>host:2345</samp>’ argument means that <code>gdbserver</code> is to 148expect a TCP connection from machine ‘<samp>host</samp>’ to local TCP port 2345. 149(Currently, the ‘<samp>host</samp>’ part is ignored.) You can choose any number 150you want for the port number as long as it does not conflict with any 151TCP ports already in use on the target system (for example, <code>23</code> is 152reserved for <code>telnet</code>).<a name="DOCF16" href="#FOOT16"><sup>16</sup></a> You must use the same port number with the host <small>GDB</small> 153<code>target remote</code> command. 154</p> 155<p>The <code>stdio</code> connection is useful when starting <code>gdbserver</code> 156with ssh: 157</p> 158<div class="smallexample"> 159<pre class="smallexample">(gdb) target remote | ssh -T hostname gdbserver - hello 160</pre></div> 161 162<p>The ‘<samp>-T</samp>’ option to ssh is provided because we don’t need a remote pty, 163and we don’t want escape-character handling. Ssh does this by default when 164a command is provided, the flag is provided to make it explicit. 165You could elide it if you want to. 166</p> 167<p>Programs started with stdio-connected gdbserver have <samp>/dev/null</samp> for 168<code>stdin</code>, and <code>stdout</code>,<code>stderr</code> are sent back to gdb for 169display through a pipe connected to gdbserver. 170Both <code>stdout</code> and <code>stderr</code> use the same pipe. 171</p> 172<a name="Attaching-to-a-program"></a><a name="Attaching-to-a-Running-Program"></a> 173<h4 class="subsubsection">20.3.1.1 Attaching to a Running Program</h4> 174<a name="index-attach-to-a-program_002c-gdbserver"></a> 175<a name="index-_002d_002dattach_002c-gdbserver-option"></a> 176 177<p>On some targets, <code>gdbserver</code> can also attach to running programs. 178This is accomplished via the <code>--attach</code> argument. The syntax is: 179</p> 180<div class="smallexample"> 181<pre class="smallexample">target> gdbserver --attach <var>comm</var> <var>pid</var> 182</pre></div> 183 184<p><var>pid</var> is the process ID of a currently running process. It isn’t 185necessary to point <code>gdbserver</code> at a binary for the running process. 186</p> 187<p>In <code>target extended-remote</code> mode, you can also attach using the 188<small>GDB</small> attach command 189(see <a href="Connecting.html#Attaching-in-Types-of-Remote-Connections">Attaching in Types of Remote Connections</a>). 190</p> 191<a name="index-pidof"></a> 192<p>You can debug processes by name instead of process ID if your target has the 193<code>pidof</code> utility: 194</p> 195<div class="smallexample"> 196<pre class="smallexample">target> gdbserver --attach <var>comm</var> `pidof <var>program</var>` 197</pre></div> 198 199<p>In case more than one copy of <var>program</var> is running, or <var>program</var> 200has multiple threads, most versions of <code>pidof</code> support the 201<code>-s</code> option to only return the first process ID. 202</p> 203<a name="TCP-Port-Allocation-Lifecycle-of-gdbserver"></a> 204<h4 class="subsubsection">20.3.1.2 TCP Port Allocation Lifecycle of <code>gdbserver</code></h4> 205 206<p>This section applies only when <code>gdbserver</code> is run to listen on a TCP 207port. 208</p> 209<p><code>gdbserver</code> normally terminates after all of its debugged processes have 210terminated in <kbd>target remote</kbd> mode. On the other hand, for <kbd>target 211extended-remote</kbd>, <code>gdbserver</code> stays running even with no processes left. 212<small>GDB</small> normally terminates the spawned debugged process on its exit, 213which normally also terminates <code>gdbserver</code> in the <kbd>target remote</kbd> 214mode. Therefore, when the connection drops unexpectedly, and <small>GDB</small> 215cannot ask <code>gdbserver</code> to kill its debugged processes, <code>gdbserver</code> 216stays running even in the <kbd>target remote</kbd> mode. 217</p> 218<p>When <code>gdbserver</code> stays running, <small>GDB</small> can connect to it again later. 219Such reconnecting is useful for features like <a href="Starting-and-Stopping-Trace-Experiments.html#disconnected-tracing">disconnected tracing</a>. For 220completeness, at most one <small>GDB</small> can be connected at a time. 221</p> 222<a name="index-_002d_002donce_002c-gdbserver-option"></a> 223<p>By default, <code>gdbserver</code> keeps the listening TCP port open, so that 224subsequent connections are possible. However, if you start <code>gdbserver</code> 225with the <samp>--once</samp> option, it will stop listening for any further 226connection attempts after connecting to the first <small>GDB</small> session. This 227means no further connections to <code>gdbserver</code> will be possible after the 228first one. It also means <code>gdbserver</code> will terminate after the first 229connection with remote <small>GDB</small> has closed, even for unexpectedly closed 230connections and even in the <kbd>target extended-remote</kbd> mode. The 231<samp>--once</samp> option allows reusing the same port number for connecting to 232multiple instances of <code>gdbserver</code> running on the same host, since each 233instance closes its port after the first connection. 234</p> 235<a name="Other-Command_002dLine-Arguments-for-gdbserver"></a><a name="Other-Command_002dLine-Arguments-for-gdbserver-1"></a> 236<h4 class="subsubsection">20.3.1.3 Other Command-Line Arguments for <code>gdbserver</code></h4> 237 238<p>You can use the <samp>--multi</samp> option to start <code>gdbserver</code> without 239specifying a program to debug or a process to attach to. Then you can 240attach in <code>target extended-remote</code> mode and run or attach to a 241program. For more information, 242see <a href="Connecting.html#g_t_002d_002dmulti-Option-in-Types-of-Remote-Connnections">--multi Option in Types of Remote Connnections</a>. 243</p> 244<a name="index-_002d_002ddebug_002c-gdbserver-option"></a> 245<p>The <samp>--debug</samp> option tells <code>gdbserver</code> to display extra 246status information about the debugging process. 247<a name="index-_002d_002dremote_002ddebug_002c-gdbserver-option"></a> 248The <samp>--remote-debug</samp> option tells <code>gdbserver</code> to display 249remote protocol debug output. 250<a name="index-_002d_002ddebug_002dfile_002c-gdbserver-option"></a> 251<a name="index-gdbserver_002c-send-all-debug-output-to-a-single-file"></a> 252The <samp>--debug-file=<var>filename</var></samp> option tells <code>gdbserver</code> to 253write any debug output to the given <var>filename</var>. These options are intended 254for <code>gdbserver</code> development and for bug reports to the developers. 255</p> 256<a name="index-_002d_002ddebug_002dformat_002c-gdbserver-option"></a> 257<p>The <samp>--debug-format=option1[,option2,...]</samp> option tells 258<code>gdbserver</code> to include additional information in each output. 259Possible options are: 260</p> 261<dl compact="compact"> 262<dt><code>none</code></dt> 263<dd><p>Turn off all extra information in debugging output. 264</p></dd> 265<dt><code>all</code></dt> 266<dd><p>Turn on all extra information in debugging output. 267</p></dd> 268<dt><code>timestamps</code></dt> 269<dd><p>Include a timestamp in each line of debugging output. 270</p></dd> 271</dl> 272 273<p>Options are processed in order. Thus, for example, if <samp>none</samp> 274appears last then no additional information is added to debugging output. 275</p> 276<a name="index-_002d_002dwrapper_002c-gdbserver-option"></a> 277<p>The <samp>--wrapper</samp> option specifies a wrapper to launch programs 278for debugging. The option should be followed by the name of the 279wrapper, then any command-line arguments to pass to the wrapper, then 280<kbd>--</kbd> indicating the end of the wrapper arguments. 281</p> 282<p><code>gdbserver</code> runs the specified wrapper program with a combined 283command line including the wrapper arguments, then the name of the 284program to debug, then any arguments to the program. The wrapper 285runs until it executes your program, and then <small>GDB</small> gains control. 286</p> 287<p>You can use any program that eventually calls <code>execve</code> with 288its arguments as a wrapper. Several standard Unix utilities do 289this, e.g. <code>env</code> and <code>nohup</code>. Any Unix shell script ending 290with <code>exec "$@"</code> will also work. 291</p> 292<p>For example, you can use <code>env</code> to pass an environment variable to 293the debugged program, without setting the variable in <code>gdbserver</code>’s 294environment: 295</p> 296<div class="smallexample"> 297<pre class="smallexample">$ gdbserver --wrapper env LD_PRELOAD=libtest.so -- :2222 ./testprog 298</pre></div> 299 300<a name="index-_002d_002dselftest"></a> 301<p>The <samp>--selftest</samp> option runs the self tests in <code>gdbserver</code>: 302</p> 303<div class="smallexample"> 304<pre class="smallexample">$ gdbserver --selftest 305Ran 2 unit tests, 0 failed 306</pre></div> 307 308<p>These tests are disabled in release. 309</p><a name="Connecting-to-gdbserver"></a> 310<h4 class="subsection">20.3.2 Connecting to <code>gdbserver</code></h4> 311 312<p>The basic procedure for connecting to the remote target is: 313</p><ul> 314<li> Run <small>GDB</small> on the host system. 315 316</li><li> Make sure you have the necessary symbol files 317(see <a href="Connecting.html#Host-and-target-files">Host and target files</a>). 318Load symbols for your application using the <code>file</code> command before you 319connect. Use <code>set sysroot</code> to locate target libraries (unless your 320<small>GDB</small> was compiled with the correct sysroot using 321<code>--with-sysroot</code>). 322 323</li><li> Connect to your target (see <a href="Connecting.html#Connecting">Connecting to a Remote Target</a>). 324For TCP connections, you must start up <code>gdbserver</code> prior to using 325the <code>target</code> command. Otherwise you may get an error whose 326text depends on the host system, but which usually looks something like 327‘<samp>Connection refused</samp>’. Don’t use the <code>load</code> 328command in <small>GDB</small> when using <code>target remote</code> mode, since the 329program is already on the target. 330 331</li></ul> 332 333<a name="Monitor-Commands-for-gdbserver"></a><a name="Monitor-Commands-for-gdbserver-1"></a> 334<h4 class="subsection">20.3.3 Monitor Commands for <code>gdbserver</code></h4> 335<a name="index-monitor-commands_002c-for-gdbserver"></a> 336 337<p>During a <small>GDB</small> session using <code>gdbserver</code>, you can use the 338<code>monitor</code> command to send special requests to <code>gdbserver</code>. 339Here are the available commands. 340</p> 341<dl compact="compact"> 342<dt><code>monitor help</code></dt> 343<dd><p>List the available monitor commands. 344</p> 345</dd> 346<dt><code>monitor set debug 0</code></dt> 347<dt><code>monitor set debug 1</code></dt> 348<dd><p>Disable or enable general debugging messages. 349</p> 350</dd> 351<dt><code>monitor set remote-debug 0</code></dt> 352<dt><code>monitor set remote-debug 1</code></dt> 353<dd><p>Disable or enable specific debugging messages associated with the remote 354protocol (see <a href="Remote-Protocol.html#Remote-Protocol">Remote Protocol</a>). 355</p> 356</dd> 357<dt><code>monitor set debug-file filename</code></dt> 358<dt><code>monitor set debug-file</code></dt> 359<dd><p>Send any debug output to the given file, or to stderr. 360</p> 361</dd> 362<dt><code>monitor set debug-format option1<span class="roman">[</span>,option2,...<span class="roman">]</span></code></dt> 363<dd><p>Specify additional text to add to debugging messages. 364Possible options are: 365</p> 366<dl compact="compact"> 367<dt><code>none</code></dt> 368<dd><p>Turn off all extra information in debugging output. 369</p></dd> 370<dt><code>all</code></dt> 371<dd><p>Turn on all extra information in debugging output. 372</p></dd> 373<dt><code>timestamps</code></dt> 374<dd><p>Include a timestamp in each line of debugging output. 375</p></dd> 376</dl> 377 378<p>Options are processed in order. Thus, for example, if <samp>none</samp> 379appears last then no additional information is added to debugging output. 380</p> 381</dd> 382<dt><code>monitor set libthread-db-search-path [PATH]</code></dt> 383<dd><a name="index-gdbserver_002c-search-path-for-libthread_005fdb"></a> 384<p>When this command is issued, <var>path</var> is a colon-separated list of 385directories to search for <code>libthread_db</code> (see <a href="Threads.html#Threads">set 386libthread-db-search-path</a>). If you omit <var>path</var>, 387‘<samp>libthread-db-search-path</samp>’ will be reset to its default value. 388</p> 389<p>The special entry ‘<samp>$pdir</samp>’ for ‘<samp>libthread-db-search-path</samp>’ is 390not supported in <code>gdbserver</code>. 391</p> 392</dd> 393<dt><code>monitor exit</code></dt> 394<dd><p>Tell gdbserver to exit immediately. This command should be followed by 395<code>disconnect</code> to close the debugging session. <code>gdbserver</code> will 396detach from any attached processes and kill any processes it created. 397Use <code>monitor exit</code> to terminate <code>gdbserver</code> at the end 398of a multi-process mode debug session. 399</p> 400</dd> 401</dl> 402 403<a name="Tracepoints-Support-in-gdbserver"></a> 404<h4 class="subsection">20.3.4 Tracepoints Support in <code>gdbserver</code></h4> 405<a name="index-tracepoints-support-in-gdbserver"></a> 406 407<p>On some targets, <code>gdbserver</code> supports tracepoints, fast 408tracepoints and static tracepoints. 409</p> 410<p>For fast or static tracepoints to work, a special library called the 411<em>in-process agent</em> (IPA), must be loaded in the inferior process. 412This library is built and distributed as an integral part of 413<code>gdbserver</code>. In addition, support for static tracepoints 414requires building the in-process agent library with static tracepoints 415support. At present, the UST (LTTng Userspace Tracer, 416<a href="http://lttng.org/ust">http://lttng.org/ust</a>) tracing engine is supported. This support 417is automatically available if UST development headers are found in the 418standard include path when <code>gdbserver</code> is built, or if 419<code>gdbserver</code> was explicitly configured using <samp>--with-ust</samp> 420to point at such headers. You can explicitly disable the support 421using <samp>--with-ust=no</samp>. 422</p> 423<p>There are several ways to load the in-process agent in your program: 424</p> 425<dl compact="compact"> 426<dt><code>Specifying it as dependency at link time</code></dt> 427<dd> 428<p>You can link your program dynamically with the in-process agent 429library. On most systems, this is accomplished by adding 430<code>-linproctrace</code> to the link command. 431</p> 432</dd> 433<dt><code>Using the system's preloading mechanisms</code></dt> 434<dd> 435<p>You can force loading the in-process agent at startup time by using 436your system’s support for preloading shared libraries. Many Unixes 437support the concept of preloading user defined libraries. In most 438cases, you do that by specifying <code>LD_PRELOAD=libinproctrace.so</code> 439in the environment. See also the description of <code>gdbserver</code>’s 440<samp>--wrapper</samp> command line option. 441</p> 442</dd> 443<dt><code>Using <small>GDB</small> to force loading the agent at run time</code></dt> 444<dd> 445<p>On some systems, you can force the inferior to load a shared library, 446by calling a dynamic loader function in the inferior that takes care 447of dynamically looking up and loading a shared library. On most Unix 448systems, the function is <code>dlopen</code>. You’ll use the <code>call</code> 449command for that. For example: 450</p> 451<div class="smallexample"> 452<pre class="smallexample">(gdb) call dlopen ("libinproctrace.so", ...) 453</pre></div> 454 455<p>Note that on most Unix systems, for the <code>dlopen</code> function to be 456available, the program needs to be linked with <code>-ldl</code>. 457</p></dd> 458</dl> 459 460<p>On systems that have a userspace dynamic loader, like most Unix 461systems, when you connect to <code>gdbserver</code> using <code>target 462remote</code>, you’ll find that the program is stopped at the dynamic 463loader’s entry point, and no shared library has been loaded in the 464program’s address space yet, including the in-process agent. In that 465case, before being able to use any of the fast or static tracepoints 466features, you need to let the loader run and load the shared 467libraries. The simplest way to do that is to run the program to the 468main procedure. E.g., if debugging a C or C<tt>++</tt> program, start 469<code>gdbserver</code> like so: 470</p> 471<div class="smallexample"> 472<pre class="smallexample">$ gdbserver :9999 myprogram 473</pre></div> 474 475<p>Start GDB and connect to <code>gdbserver</code> like so, and run to main: 476</p> 477<div class="smallexample"> 478<pre class="smallexample">$ gdb myprogram 479(gdb) target remote myhost:9999 4800x00007f215893ba60 in ?? () from /lib64/ld-linux-x86-64.so.2 481(gdb) b main 482(gdb) continue 483</pre></div> 484 485<p>The in-process tracing agent library should now be loaded into the 486process; you can confirm it with the <code>info sharedlibrary</code> 487command, which will list <samp>libinproctrace.so</samp> as loaded in the 488process. You are now ready to install fast tracepoints, list static 489tracepoint markers, probe static tracepoints markers, and start 490tracing. 491</p> 492<div class="footnote"> 493<hr> 494<h4 class="footnotes-heading">Footnotes</h4> 495 496<h3><a name="FOOT16" href="#DOCF16">(16)</a></h3> 497<p>If you choose a port number that 498conflicts with another service, <code>gdbserver</code> prints an error message 499and exits.</p> 500</div> 501<hr> 502<div class="header"> 503<p> 504Next: <a href="Remote-Configuration.html#Remote-Configuration" accesskey="n" rel="next">Remote Configuration</a>, Previous: <a href="File-Transfer.html#File-Transfer" accesskey="p" rel="previous">File Transfer</a>, Up: <a href="Remote-Debugging.html#Remote-Debugging" accesskey="u" rel="up">Remote Debugging</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> 505</div> 506 507 508 509</body> 510</html> 511